Struts2学习-jsp中超链接传参问题

今天在学习过程中对struts2中超链接的传参问题产生了一些疑惑,不明白jsp中的超链接如何将参数传到Action方法中去的。

<s:iterator value="categorys" var="p">
        <tr>
            <td>${p.id}</td>
            <td>${p.name}</td>
            <td><a href="listProduct?category.id=${p.id}">products</a></td>
            <td><a href="editCategory?category.id=${p.id}">edit</a></td>
            <td><a href="deleteCategory?category.id=${p.id}">delete</a></td>
        </tr>
    </s:iterator>
ProductDAO pdao = new ProductDAO();
    CategoryDAO cdao = new CategoryDAO();
    Product product;
    List<Product> products;
    List<Category> categorys;
    Category category;

public String list() {
        categorys = cdao.listCategory();
        if (null != category) {
            category = cdao.get(category.getId());
            products = new ArrayList(category.getProducts());
            return "listJsp";
        } else {
            products = pdao.listProduct();
            return "listJsp";
        }
    }

在下面一段java代码中,我并未实例化category,但所给代码中却有判断对象为空的语句,我不禁疑惑category对象是什么时候实例化的。

后查阅了相关问题,依旧没有找到原因,只能大胆猜测在超链接中需要先将所用到的对象设置出来,这样就免去了实例化的过程,将当前product的id通过超链接传入,然后调用CategoryAction中的get与set将id设置给category对象,便于通过某一商品的id查到该id所属类别下的所有商品信息。

原文地址:https://www.cnblogs.com/huqingfeng/p/12362315.html