当前位置: 代码迷 >> Java Web开发 >> 关于<c:forEach>循环赋值的有关问题
  详细解决方案

关于<c:forEach>循环赋值的有关问题

热度:10319   发布时间:2013-02-25 21:22:29.0
关于<c:forEach>循环赋值的问题
代码如下:

<%
  ArrayList<String> items=standard.getItems();
%>
standard是一个bean实例,getItems()是standard类中定义的一个方法,返回所有收费款项,假设只有“书费”、“学费”两种。

<c:forEach items="<%=items %>" var="item">

  <tr height="10%">

  <td class="addSub">

  <font class="addSub"> ${item }:</font>

  </td>

  <td>

  <input type="text" name="${item }" size="20"/>

  </td>

  </tr>

</c:forEach>

其中items是ArrayList<String>类型的变量,里面存储着{“书费”,“学费”}之类的值。请问上述代码能否实现如下功能:页面上展示若干输入框,对应书费、学费等。每个输入框的name属性分别为“书费”,“学费”,然后在提交后的页面上通过request.getParameter("书费");request.getParameter("学费")来获得输入的值。

提交后转向的页面代码如下:

<%
  ArrayList<String> items=standard.getItems();
  int amount;
  String item="";
  if(!items.isEmpty()){
  for(int i=0;i<items.size();i++){
  item=items.get(i);
  String am=(String)request.getParameter(item);
  amount=Integer.parseInt(am);
%>
两个页面中均将bean实例化为了standard,出现的错误是am是个null值,也就是无法取得前一个页面输入框中输入的值,请问应该怎么解决?分不多了,恳请各位大侠相助。

------解决方案--------------------------------------------------------
<c:forEach items="<%=items %>" var="item">
这句话有问题把,我记得strust标签里需要用到ognl表达式的。 <%=%>这个只是相当于一个jsp页面的out而已。输出结果的。%{}应该是这种格式才对
------解决方案--------------------------------------------------------
你先在第一个页面上迭代一下,看能不能显示items里面内容?它直接迭代的应该是request范围的items,你将items放到request里
------解决方案--------------------------------------------------------

ArrayList<String> items=standard.getItems();下面加上这句

request.setAttribute("items",items);

循环这样写:
<c:forEach items="${items}" var="item">
  相关解决方案