这是我读取复选框的代码,你可以替换成text,只能用html的标签,用Struts的html标签本人试了下没有做出来。
步骤是:
1、统计一共有多少记录,然后把记录数放在一个hidden项里面
2、在action里面循环,取出选择(你的就是文本框)的值
为什么是html而不是Struts的html,因为你的记录条数是不确定的,html:text的property的值是需要和struts-config.xml文件对应起来的。所以只能是动态的。jsp页面代码
--------------------
 <% int i = -1; %>
 <logic:present name="poweruser">
 <logic:iterate id="puser" name="poweruser">
   <% i += 1; %>
   <TR class="tr">
      <TD width="20%" align="center" height="24">
        <INPUT type="checkbox" name="uselect<%=i%>" value="${puser.pk}">
      </TD>
      <TD width="80%" align="center">
         <bean:write name="puser" property="username" />
      </TD>
   </TR>
 </logic:iterate>
 </logic:present>                   
 <html:hidden property="userid" value="${ucount}"/>action代码:
--------------------------------------------
...
int ucount = Integer.valueOf(addSysModulePowerForm.getString("userid")).intValue();
for (int i = 0; i < ucount; i++){
  //取值
  String userid = request.getParameter("uselect"+i);}
自己再看看。。

解决方案 »

  1.   

    用STRUTS的HTML标签真的不行吗? 要是改成HTML的话我程序的改动会非常大.谢谢你的帮忙. 我的问题你总是很捧场.可是我不明白你 <INPUT type="checkbox" name="uselect<%=i%>" value="${puser.pk}">"${puser.pk}" 是什么意思. 用这样的方法做, 我的难度会很大.
      

  2.   

    通过js里可以得到相应输入的所有字符串,如:
    var aa = document.getElementsByName("name");
    这里得到的aa是一个数组,通过aa[i].value可以取出里面的所有值,
    然后把这些值加在一起,如:
    var b;
    for(i=0;i<aa.length;i++){
       b+=(aa[i].value+|);
    }
    然后把b通过参数传到action里去,通过StringStoze。。把字符串分割为数组
    这样就可以得到全部的值了
      

  3.   

    为什么要改成input,因为你界面上有两个文本框,也就是够成条数据,要对应起来怎么对应,假如在第三行的时候,我name不输入,url输入,那么数据怎么对应起来呢?所以用input那么就给每个input都命了个名字,name1和url1是一组,name2,url2是一组,你在获取数据的时候就不出错啊。。因为你这是多记录。
      

  4.   

    "${puser.pk}" 将当前记录pk的值绑定到text项。