日期:2014-05-17  浏览次数:20559 次

jsp页面多个文本框传值问题
如何在jsp页面获取多个文本框的数值,然后传到后台SalaryStandardAction.java里,再把数值加起来写入数据库表中?
如:
jsp页面:
<%int i=0;
%>
<c:forEach items="${requestScope.attribute}" var="item">
<%i++; %>
<tr class="TD_STYLE2">
<td align="center">
<%=i
%>
<input type="hidden" name="salaryStandardDetals.standardId" value="${standardId}">
</td>
<td colspan="3">
<input type="text" name="salaryStandardDetals.attributeName" value="${item.attributeName}" class="INPUT_STYLE2" readonly="readonly">
<input type="hidden" name="list[0].itemName" value="">
</td>
<td>
<input type="text" id="salary" name="salaryStandardDetals.salary" value="" class="INPUT_STYLE2">
</td>
<td colspan="3">
&nbsp;
</td>
</tr>
</c:forEach>


从数据库读取一个字段${item.attributeName}利用<c:forEach items="${requestScope.attribute}" var="item">
循环显示出6条信息如图:
然后传到后台SalaryStandardAction.java将金额全部加起来的一个总数在存入数据库表中。




------解决方案--------------------
你给每个input加上一个id,比如说<input type="hidden" name="list[0].itemName" id="list0" value="">,因为在一个jsp页面里面id是不能重复的,name可以重复,然后将这些id用JS或者jquery获取值,在js里面相加,最后将值传到页面的一个你新建的input里面,比如说<input type="hidden" id="total"/>,再把这个total的值传到后台action里面,在action里面private int total,在建立set方法,根据struts2的框架就可以获取这个总和的值了。

<script type="text/javascript">
var a = document.getElementById('list0').value;
var b=document.getElementById('list1').value;
var c="";
c=a+b;
document.getElementById('total').value = c;
</script>

上面的代码是用js写的,最好把这段代码放到jsp页面的head标签里。楼主可以在浏览器里面按F12,一步一步调试。
------解决方案--------------------
我是用servlet测试的

在后台得到所有的值

SalaryStandardAction.java:

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletExceptionIOException {
    String [] str = req.getParameterValues("salary");
    double dou = 0;
    for(int i=0; i<str.length;i++){
        System.out.println(str[i]);
double do1 = Double.valueOf(str[i]);
dou = dou + do1;

    }

    System.out.println(dou);
}

看你的类名好像是struts的框架,我想应该也差不多吧