jsp页面代码改成如下:用什么方法既可以获得所选择机构名称,又能将其对应的username返回到action中,下面代码可以取得机构名称值,但没有办法得到相应的useranme值,谁有好的办法解决这个问题:
 <s:form name="userjgxx" action="jgxxuserAction">
  <tbody>
 <s:iterator value="users">   
<tr>
<td><s:text name="用户名称"/></td> 
<td><s:property value="username"/></td>   
  </tr>   
    
  <tr>   
  <td><s:checkboxlist name="userjgmc" list="userYwlb" listValue="jgmc" listKey="jgmc" label="请选择:"/><br></td>  
  </tr>  
 
  <!-- <tr>
  <td><a href='<s:url action="jgxxuserAction.action"><s:param name="username" value="username"/></s:url>'>确定</a></td>
  </tr> --> //这句可以获得当前用户。这句该如何处理,才能通过submit传递username参数
    
  <tr>
  <td><s:submit value="确定" ></s:submit></td>
  </tr>
  </s:iterator>   
    </tbody>   </s:form>

解决方案 »

  1.   

    写个<inpuut name="usename" value="usename" type="hiddern"/>
      

  2.   

    不行,获得的值全为username,并且不是我想要的与之对应的用户值,谢谢回复!
      

  3.   

    <inpuut name="usename" value="<s:property value=’username‘/>" type="hiddern"/>这个试试
      

  4.   

    单纯的通过s:标签很难得到你想要的需求,
    或许可以考虑一下通过javascript动态修改一下表单元素然后再提交.
      

  5.   

    你说这里取到了当前用户 ,
     <td><a href='<s:url action="jgxxuserAction.action"><s:param name="username" value="username"/></s:url>'>确定</a></td>
      </tr> --> //这句可以获得当前用户。这句该如何处理,才能通过submit传递username参数
    又说 但是个集合值,是将所有用户都取上了,
    我搞不懂。。
    我想要得是一个用户和这个用户所选择的机构名称的值 ,标红的用户是不是标绿的用户。机构 的复选框的id='jg'+i; 遍历用户集, 放在隐藏域里,隐藏域的id='name'+i,两个对应。
    比如选择了 id为jg3的机构,那你就取name3这个值。
      

  6.   

    先说明,这个JSP页面运行结果如下:
    用户姓名    张三
    机构名称    中行 口   建行 口   工行 口   农行口 
    用户姓名    王二
    机构名称    中行 口   建行 口   工行 口   农行口 
    机构名称可以任意选择,如:中行、建行等,我现在要取的是王二,和王二所选择的机构名称:建行和农行这两个值。目前我能做到是可以取得王二所选的机构值,但取不到王二,不知说明白了没?该如何从jsp页面上取得王二呢?
      

  7.   

    <s:checkboxlist name="<s:property value="username"/>" list="userYwlb" listValue="jgmc" listKey="jgmc" label="请选择:"/> 这样行么 把每个checkboxlist 的name 直接赋为 username 然后就可以把username和选择对应起来了不知道行不行得通
      

  8.   

    可以把你的users属性在request范围内共享一下,然后在你的Action页面里面将username一个一个的取出来和多项框的值对应起来
      

  9.   

    你的users的值是从哪儿传到jsp页面的
      

  10.   

    通过action中context.put("users",users);得到的
      

  11.   

    说明下,上面JSP页面运行结果如下:
    用户姓名 张三
    机构名称 中行 口 建行 口 工行 口 农行口  
    用户姓名 王二
    机构名称 中行 口 建行 口 工行 口 农行口  
    机构名称可以任意选择,如:中行、建行等,我现在要取的是王二,和王二所选择的机构名称:建行和农行这两个值。目前我能做到是可以取得王二所选的机构值,但取不到王二,不知说明白了没?该如何从jsp页面上取得王二呢?
    有没有高手给解决下,高分求解!
      

  12.   

    <s:iterator id="list" value="#request.users">  
    <s:property value="#list.username"/> 
    </s:iterator>
      

  13.   

    试了,不行。用<s:iterator id="list" value="#request.users">中的value="#request.users"页面无显示,改为value="users"可以正常显示,但<s:property value="#list.username"/> 在action中仍为空,我在action中用的是以下方法:
    HttpServletRequest request=ServletActionContext.getRequest();
    String username=(String)request.getAttribute("username");
    不知正确与否?
      

  14.   

    在你为users赋值的那个Action 用ActionContext.getContext().getSession().put("users",users);将users共享为session 范围内的 然后在你取值的Action中 用
    HttpServletRequest request = ServletActionContext.getRequest();
    HttpSession session = request.getSession();
    List <String>users = (List<String>) session.getAttribute("users");获取users对象
    然后 for (int i=0; i<users.size();i++){
    System.out.println("username"+users.get(i)); 
    }
    可得到所有的用户名
      

  15.   

    users集合的值可以取到,但我要的是如下:
    用户姓名 张三
    机构名称 中行 口 建行 口 工行 口 农行口   
    用户姓名 王二
    机构名称 中行 口 建行 口 工行 口 农行口   
    我现在要取的是王二,和王二所选择的机构名称:建行和农行这两个值。目前我能做到是可以取得王二所选的机构值,但取不到王二,不知说明白了没?该如何从jsp页面上取得王二呢?
      

  16.   

    你把users集合里面的用户名一个一个的和用户的选择对应起来不就可以得到了吗(在你获取用户选择的机构的时候)
      

  17.   

    是在jsp页面做,还是在action中做?“在你为users赋值的那个Action 用ActionContext.getContext().getSession().put("users",users);将users共享为session 范围内的“ 。能给出具体代码吗?谢谢!
      

  18.   

    <s:iterator value="#users">
    <tr>
        <td>${username }</td>     
                    </tr>
    </s:iterator>
    这样取就可以了,前提是要保证你的users里面有 username这个字段,否则的话是取不到的;
    你可也参考下我以前的代码, 下面的
    <s:iterator value="#pageResult.list">
    <tr>
        <td>${name }</td>
        <td>${sn }</td>
        <td>${type.name }</td>
        <td>${source.name }</td>
        <td>${trade.name }</td>
        <td>${seller.trueName }</td>
        <td>${tel }</td>
        <td>${email }</td>
        <td>${address }</td>
        <td>
        <a href="client_edit?id=${id }">修改</a>
        <a href="client_delete?id=${id }" onclick="return confirm('是否删除')">删除</a>
        </td>
    </tr>
    </s:iterator>
      

  19.   

    既然是循环的话 那么你的每个username的标识就应该不一样、可以用过id来区别、
    例如:<input type="text" id="username_${id}" name="username_${id}"/> 
    总之${id}是变化的、至于怎么用标签表示应该是同样的道理
      

  20.   


    可能是我理解有误:关于楼主的意思是否是这样:  
                     如果我点了王二和张三这俩人。并且我点了很多银行信息。
                     我后台要全部得到王二和张三两人的姓名和点击的银行信息。然后全部在保存到数据库??楼主是迭代出来的张三和王二。银行信息也是迭代的。
    如果是楼主那样我是不知道有什么方法可以实现。不过要是我点了王二。和王二下面的银行信息 做为单个保存的话。
    我可以给点思路。在迭代之外做一个隐藏表单域 ,里面有你需要的username 控件和 bankname 控件 都是隐藏的。通过点击迭代复选框来给该表单域赋值   最后通过什么按钮 给提交后台。(批量的话 后台试试用集合获取)给个写的例子:(手写可能有错。自己查对下)
    function js (username, bankname){
        document.getElementById('username').value = username;//把username赋值给表单的username
       document.getElementById('bankname').value = bankname;//同上意思
        formobject= document.getElementById('form1');  //获取到id为form1的表单控件
         formobject.submit();//提交表单
    }
    <form  id="form1" name="form1" action="XXXXX.action" method="post">
      <input type="hidden" name="username" id="username">
      <input type="hidden" name="bankname"  id="bankname">
      </form> <s:iterator value="list" >     姓名:<s:property value="username"/>
         银行:农行:<input type="checkbox" name="check"  onclick="js('<s:property value="username"/>'   , nh);" />
                   建行:<input type="checkbox" name="check"  onclick="js('<s:property value="username"/>'   , jh);" />
                     。略
     </s:iterator>
    累。
      

  21.   

    你点击checkbok是的事件,可以传你username作为你的参数,然后用dom编程把这的参数放进一个隐藏域中,提交时就可以用了!!