[]struts标签无法获取遍历的值
阅读
本人菜鸟 刚入门, 请问下为何我这个strtus标签iterator无法遍历值呢? 页面没有任何报错,也没有空指针异常,就是那几个值无法传递过来(productName,fixedPrice,dangPrice都是product类中的属性).
包含关系: cartItems-->item-->pro.productName
请看下面代码:
- JScript code
<s:iterator value="cartItems"> <tr class='td_no_bord'> <td> <a href="#"><s:property value="#item.pro.productName" /></a> </td> <td class="buy_td_5"> <span class="c_gray"><s:property value="%{item.pro.fixedPrice}"/></span> </td> <td class="buy_td_4"> <span><s:property value="%{item.pro.dangPrice}"/></span> </td> </tr> </s:iterator>
- Java code
================BuyAction.java(在struts.xml中有定义,根据私有属性获取值)====================== public class BuyAction extends BaseAction{ //input private int id; //output private List<CartItem> cartItems; private CartItem item; private boolean hasBook; ProductDAO pd = new JdbcProductDAO(); CartBean cb = new CartBean(); public String addBook(){ item = cb.buy(id);// <----调用CartBean.java的buy()方法 if(cartItems==null){ cartItems = new ArrayList<CartItem>(); } if(cartItems.isEmpty()){ hasBook = false; cartItems.add(0, item); return "addInCart"; } ====================CartBean.java====================== public class CartBean extends BaseAction implements Cart{ private CartItem item; public CartItem buy(int bid) { //根据商品pid,获取商品对象,封装成CartItem ProductDAO pd = new JdbcProductDAO(); Book book = new Book(); try { book = pd.getAbook(bid);//能够顺利通过JDBC获取数据库存储的数据 item = new CartItem(book,1,true); } catch (SQLException e) { e.printStackTrace(); } return item; }
------解决方案--------------------
楼上说要加id 貌似不加也可以、我的就没加id也能实现遍历;
LZ 你Debug看一下你返回的结果集里面item对象中的那个pro
属性,确定下是否为空呢?
------解决方案--------------------
另外就是 你的Item对象中的Pro属性对象有没有实现set get方法?这个是必须实现的、如果你要在页面遍历的话
------解决方案--------------------
<s:iterator value="cartItems">
<s:property value="对象名.属性" />
</s:iterator>
这样就可以了
<s:iterator value="cartItems" var="item">
<tr>
<td>
<a href="#"><s:property value="item.productName"/></a>
</td>
<td class="buy_td_5">
<span><s:property value="%{item.fixedPrice}"/></span>
</td>
<td class="buy_td_4">
<span><s:property value="%{item.dangPrice}"/></span>
</td>
</tr>
</s:iterator>
这样就可以了 你试试看看
------解决方案--------------------
像这种页面没值,无非就是下面几种情况
1.数据库没数据(进数据库查看下表)
2.没有查询到(调试,看看你的dao里是否有bug)
3.你的标签用错了(你自己一个一个的调试下就知道了,实在不行换种标签)
4.有时候会有缓存的现象,清理下缓存(这中很少)
------解决方案--------------------
像这种页面没值无非就是一下几种情况:
1.数据库没数据(进数据库查询下表)
2.你的daoimpl里有sql错(打个断电调试进去)
阅读
上一篇:extjs跟jquery的区别 下一篇:返回列表