这是产品列表的jsp页面(/productList.do)(图片弄不上来,只能用文本了):序号 产品名称 价格 操作
1 JAVA编程思想:第3版 95.00
2 精通Hibernate:Java对象持久化技术详解 59.00
3 Java 2核心技术(第6版) 卷I:基础知识 75.00
4 Effective Java中文版 39.00
5 Java与模式 88.00
6 深入浅出Hibernate 59.00
7 Tomcat与Java Web开发技术详解 45.00
8 精通Spring 39.00 代码1:(产生以上列表的嵌入html的代码,点击产品名称超链接将进入相应的产品说明页面productDetail)
<%
List productList = (List)request.getAttribute("productList");
for(int i = 0;i < productList.size();i++){
Product product = (Product)productList.get(i);
%>
<tr>
<td class="tablebody2" valign="middle" align="center" width="8%"><%=product.getProductid()%></td>
<td class="tablebody1" valign="middle" width="60%"> <a href="productDetail.do"><%=product.getName()%></a></td>
<td class="tablebody2" valign="middle" align="center" width="8%"><%=product.getBasePrice()%></td>
<td class="tablebody1" valign="middle" align="center" width="24%"> <a href="../shoppingCart/shoppingCart.html"><img border="0" src="<%=request.getContextPath()%>/images/car_new.gif" width="97" height="18"></a></td>
</tr>
<%
}
%>代码2:(eclipse中,productAction类)
public ActionForward showList(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
IProductBusiness business = (IProductBusiness) BusinessFactory.getBusiness(IProductBusiness.class.getName());
List productList = business.findAllProducts();
request.setAttribute("productList", productList);
return mapping.findForward("productList");
}
@Test
public ActionForward showDetail(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
IProductBusiness business = (IProductBusiness) BusinessFactory.getBusiness(IProductBusiness.class.getName());
Product productDetail = business.getProductById(Integer.parseInt(request.getParameter("productid")));
request.setAttribute("productDetail", productDetail);
return mapping.findForward("productDetail");
}问题是:当我单击产品名称进入产品说明时,action类里有个方法是getProductById,如何从页面中获得产品Id呢?关键位置是
上面action类中:Product productDetail = business.getProductById(Integer.parseInt(request.getParameter("productid")));
红字体部分,productid应该换成jsp页面中的哪个元素呢?
谢谢大家啦,如果我说的不明白可以回帖问 我会及时补充!
1 JAVA编程思想:第3版 95.00
2 精通Hibernate:Java对象持久化技术详解 59.00
3 Java 2核心技术(第6版) 卷I:基础知识 75.00
4 Effective Java中文版 39.00
5 Java与模式 88.00
6 深入浅出Hibernate 59.00
7 Tomcat与Java Web开发技术详解 45.00
8 精通Spring 39.00 代码1:(产生以上列表的嵌入html的代码,点击产品名称超链接将进入相应的产品说明页面productDetail)
<%
List productList = (List)request.getAttribute("productList");
for(int i = 0;i < productList.size();i++){
Product product = (Product)productList.get(i);
%>
<tr>
<td class="tablebody2" valign="middle" align="center" width="8%"><%=product.getProductid()%></td>
<td class="tablebody1" valign="middle" width="60%"> <a href="productDetail.do"><%=product.getName()%></a></td>
<td class="tablebody2" valign="middle" align="center" width="8%"><%=product.getBasePrice()%></td>
<td class="tablebody1" valign="middle" align="center" width="24%"> <a href="../shoppingCart/shoppingCart.html"><img border="0" src="<%=request.getContextPath()%>/images/car_new.gif" width="97" height="18"></a></td>
</tr>
<%
}
%>代码2:(eclipse中,productAction类)
public ActionForward showList(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
IProductBusiness business = (IProductBusiness) BusinessFactory.getBusiness(IProductBusiness.class.getName());
List productList = business.findAllProducts();
request.setAttribute("productList", productList);
return mapping.findForward("productList");
}
@Test
public ActionForward showDetail(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
IProductBusiness business = (IProductBusiness) BusinessFactory.getBusiness(IProductBusiness.class.getName());
Product productDetail = business.getProductById(Integer.parseInt(request.getParameter("productid")));
request.setAttribute("productDetail", productDetail);
return mapping.findForward("productDetail");
}问题是:当我单击产品名称进入产品说明时,action类里有个方法是getProductById,如何从页面中获得产品Id呢?关键位置是
上面action类中:Product productDetail = business.getProductById(Integer.parseInt(request.getParameter("productid")));
红字体部分,productid应该换成jsp页面中的哪个元素呢?
谢谢大家啦,如果我说的不明白可以回帖问 我会及时补充!
为啥 DB取得之后的id还是“动态生成的”?听不明白
这个应该可以吧,链接是通过循环动态生成的
<a href="../shoppingCart/shoppingCart.html?productid=${product.Productid}"> <img border="0" src=" <%=request.getContextPath()%>/images/car_new.gif" width="97" height="18"> </a>
我在项目里是这样用的,其实和上面的方法一样啦,不过看上去简洁点
我想说,执行过程是这样的
1,action里面取得productList,这里面是包含id的,这时候页面还没生成。
2,然后,页面产生,从request里面把productList取出来,也是有ID信息的,id是从数据库来的,
productid= <%=product.getProductid()%>">应该是可以拿到的~~恩
3,最后,既然拿得到,就应该可以通过url传给下一个action……我还有个问题啊,这个链接的写法:<a href="../shoppingCart/shoppingCart.html">
不是应该写成:<a href="../shoppingCart/xxxxAction.do?>的么?
调用你要掉的Action。
为啥制定一个html啊。楼主你这么些能调用起来么?打断点能停吗?
?productid= <%=product.getProductid()%>
productid=后面应该没有空格 唉 开始我直接复制的。~~~--
那个shoppingCart应该是.do 购物车我还没开始做呢 二楼可能加错了把,他的代码是对的 我开始说的是productDetail.do 哈哈 终于弄明白了!