我正在创建一个按钮或链接,以便在有人搜索产品后将产品添加到购物车。这是我们的 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。我最初的想法是在响应 += getResponse() 之后添加调用我们方法的 commandButton 的 JSF 代码,这违反了BalusC 的评论中的规则 #2 , 产品控制器中的 addToCart()。它在相应搜索结果旁边显示按钮,但不运行 #{cartController.addToCart()} 方法。
我查看了数据表,例如BalusC 对“JSF 数据表中的 JSF 命令按钮”的评论。基本上这归结为两个问题:
- 我们是否应该尝试使用数据表来显示我们的数据并在列中使用“添加到购物车”按钮?我能否将其绑定到该特定产品 ID 的 addToCart() 方法?我问“应该”是因为我们是 JSF 的新手,这可能超出了我们的想象。
- 我的第一个解决方案可行吗?我们可以从一个字符串中动态地创建可行的 JSF 表单按钮吗?
- 有什么比我们尝试的更简单的吗?
任何帮助是极大的赞赏。我们目前使用的是 JSF 2.1。