代码如下:
<%
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">