0

最初のjspページにすべての製品データを表示する方法を知りたいです。データベースから商品データを取得し、リスト配列を返しました。そして、jspでこの配列を表示する方法がわかりません。

http:// localhost:8080 / StrutsPrj / jsp / showAllProduct.jspに電話したいのですが、そのページはすべての製品に表示されます。しかし、struts-config.xmlでその最初のページを構成する方法と、このページの関連するアクションを呼び出す方法がわかりません。

次のコードを確認してください。

ShowAllProductAction ::::::::

Database db = new Database();
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res){
    ProductForm myForm = (ProductForm)form;
    List<ProductForm> prodList = db.getProduct();
    myForm.setProdList(prodList);
    return mapping.findForward("success");
}

struts-config.xml ::::::

<form-beans>
     <form-bean name="ProdForm" type="action.ProductForm"/>
</form-beans>

<action-mappings>
  <action name="ProdForm" path="/showProduct" type="action.ShowAllProduct" scope="request" >
    <forward name="success" path="/jsp/showProduct.jsp"/>
  </action>
</action-mappings>

path = "/ showProduct"はどのjspにもありませんが、タグにパスが必要なため、このパスを追加しました。:D

showAllProduct.jsp ::::::

<logic:notEmpty name="userBean" property="searchControl">
   <c:forEach var="i" begin="${userBean.begin}" end="${userBean.end}" step="1">
    ${userBean.prodList[i-1].productName}<br/>
    ${userBean.prodList[i-1].modelNo}<br/>
    ${userBean.prodList[i-1].brief}<br/>
    ${userBean.prodList[i-1].price}<br/><hr/>
   </c:forEach>
</logic:notEmpty>

エラーが発生しました:java.lang.IllegalArgumentException:ForwardConfigのパスをnullにすることはできません

このコードの何が問題になっていますか?よろしければ説明してください。ありがとう。

4

2 に答える 2

1

そのはず

Database db = new Database(); 
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) {     
     List<ProductForm> prodList = db.getProduct();     
     request.setAttribute("prodList", prodList);
     return mapping.findForward("success"); 
} 

jspで

<logic:iterate name="prodList" id="product">
<p>
  <bean:write name="product" property="productName"/>
  <bean:write name="product" property ="modelNo"/>
  etc ...
</p>
</logic:iterate>
于 2012-10-11T08:57:59.623 に答える
0

電話するべきですが、電話http://localhost:8080/StrutsPrj/showProduct.doしないでくださいhttp://localhost:8080/StrutsPrj/jsp/showAllProduct.jsp

于 2012-10-15T13:06:21.330 に答える