使用commandButton与来自String的动态按钮进行数据表

时间:2013-04-22 01:41:29

标签: jsf button dynamic hyperlink datatable

我正在创建一个按钮或链接,以便在有人搜索产品后将产品添加到购物车。以下是我们的ProdcutsController.java类的部分:

public String getResponse() {
    String resultStr = "";
    resultStr += theModel.getProductID() + "<br/>"
            + theModel.getUserID() + "<br/>"
            + theModel.getTitle() + "<br/>"
            + theModel.getProductType() + "<br/>"
            + theModel.getProductDesc() + "<br/>"
            + theModel.getRating() + "<br/>"
            + theModel.getPictureURL() + "<br/>"
            + theModel.getPrice() + "<br/>";

    response = resultStr;
    return response;
}

public String searchProduct() {
    ProductsDAO aProductDAO = new ProductsDAOImpl();    // Creating a new object each time.
    ArrayList products = aProductDAO.searchProduct(theModel); 

    response = "";

    for (int i=0; i < products.size(); i++) {
        theModel = (ProductsBean)products.get(i);
        response += getResponse();
    }
    theModel.setSearchResult(response);

    return "searchResults.xhtml"; // navigate to "searchResults.xhtml"
}

现在它显示的外观和它看起来一样糟糕。我是JSF的新手(在我们的课程中使用2.1版)并且之前使用过ASP.NET来进行类似的课程。我认为违反BalusC's comment for "h:commandLink / h:commandButton is not being invoked"中规则#2的原始想法是在响应+ = getResponse()之后添加一个commandButton的JSF代码,该函数在Products Controller中调用我们的方法addToCart()。它显示相应搜索结果旁边的按钮,但不运行#{cartController.addToCart()}方法。

我研究了像BalusC's comment for "JSF Command button inside a JSF data Table"这样的数据表。基本上这归结为两个问题:

  • 我们是否应该尝试使用数据表来显示数据并使用列中的“添加到购物车”按钮?我是否可以将此绑定到特定产品ID的addToCart()方法?我问“应该”,因为我们是JSF的新手,这可能是我们的头脑。
  • 我的第一个解决方案是否可行?我们可以从?
  • 在String中动态创建可用的JSF表单按钮
  • 有什么比我们尝试的更简单吗?

非常感谢任何帮助。我们目前正在使用JSF 2.1。

1 个答案:

答案 0 :(得分:0)

我们能够在我提供的链接中实现查看BalusC上述评论的数据表。一旦我们做了一些试验/错误,它就能很好地工作。