<c:foreach>和<h:commandlink>无法将param发送到函数

时间:2016-01-14 10:02:58

标签: java jsp jsp-tags

我无法让h:command向该函数发送param cat1的值为AR数组,但我无法在正确的参数中发送param

JSP代码

<c:forEach items="${categoryBean.getSubCategoryByID(0)}" var="cat" varStatus="stat">        
<c:set var="cat1" scope="request" value="${cat}"/>
   <li>
     <c:out value="${cat1.id}" />  <c:out value="${cat1.name}" />
     <h:commandLink id="goprime" action="#{categoryBean.gotoPrimecat}" value="#{cat1.name}"> 
     <f:setPropertyActionListener target="#{categoryBean.CatID}" value="#{cat1.id}" />
      </h:commandLink>
    </li>
  </c:forEach>

bean代码

public String getCatID() {
    return CatID;
}
public void setCatID(String CatID) throws SQLException, ClassNotFoundException {
   logger.info("in setter: "+CatID);
    this.CatID = CatID;
        //products = product.searchProductsByCategory(null, null, CatID); 


}

public void GotoPrimecat() throws IOException  {
    logger.info("in primercat , id: "+this.CatID);
    ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
    context.redirect("category.jsp");
    return;
}

1 个答案:

答案 0 :(得分:0)

看起来问题是您的方法的名称。在您的页面中,该方法被引用为categoryBean.gotoPrimecat,而在您的bean中,方法为GotoPrimecat()。确保方法名称完全相同,包括大小写,它应该没问题。在这种情况下,你的bean方法应该以小写字母开头,这是普遍接受的样式。