Action传过来一个customerList集合 每行有一个checkbox,选中其中一行 点击修改链接 在Action中拿到点击的这行记录的checkbox值 如果是form跳转的话 直接在Action里定义一个属性 private [] String customerId; 提供set和get方法就能拿到 但是链接跳转不知道怎么拿到值 请大家拿个主意链接如下<a href="updateCustomer.action" onclick="return chack()">修改</a>遍历集合
<s:iterator value="#request.customerList" id="list">
  <tr>
     <td width="3%" align="center" valign="middle">

     <input type="checkbox" name="customerId" id="checkboxId" value="<s:property value="#list.customerId"/>"> 

     </td>
     <td width="17%" height="30" align="center" valign="middle">
 <span class="STYLE1">        <s:property value="#list.customerName"/>  </span>              
     </td>
     <td align="center" valign="middle">
  <span class="STYLE1">         <s:property value="#list.customerLinkman"/>   </span>
      </td>
 </s:iterator>

解决方案 »

  1.   

    除了URL传参 还有没有别的方式 能不能给出具体写法
      

  2.   

    请问为什么要传checkbox的值?  要传入其它的数据的话,你可以用隐藏表单进行传值!
      

  3.   

    传数据也行 但是我不知道怎样通过链接跳转把数据传到Action 能不能给个实例
      

  4.   

    我觉得你用链接跳转这种方式不好,因为这种方式是get方法提交的,最多只能提交2K的大小。你还是用表单吧。
      

  5.   

    恩  我也想用form form提交就不用这么麻烦 但是页面已经做成链接 我不能让美工再改 我就想从jsp页面传递一个checkbox选中的Id到Action里做处理 但是这个链接没有写在 s:iterator 里 我不知道怎样传到Action里 刚学着用struts 楼上能不能给发个例子写法 我邮箱[email protected]
      

  6.   

    你做的修改是针对一条数据还是多条,功能是否只是开启或者关闭,要是针对数据的修改 你把<checkbox> 名字为同一名字 JS获取到的是checkbok的数组 checkbox的值是每条数据在数据库中的ID(可以根据需求不同 这个ID的值 可以用分隔符号多放几个ID方便进行不同的修改)
      

  7.   

    我在js里获取到checkbox的值 怎样实现点击链接 让这个js把checkbox值传到指定Action上
      

  8.   

    修改不在遍历里确实有点怪。若是我,解决方法如下:
    1)用url方式传参,在:<a href="#" onclick="return chack()">修改</a>,
    链接action在脚本函数里设置。function chack(){//脚本获取checked状态的所有customerId,用逗号隔开(例:guke001,guku002)
    var ids = ......//设置链接action
    window.location.href = "updateCustomer.action?ids=" + ids;}
    2)后台定义后String类型的属性 private String customerId就可以了,
    然后取到后再用逗号split。
      

  9.   

    你可以把页面稍微修改下,去掉那个checkbox,直接在每一行后面添加上删除的链接,这样就可以直接通过URL的参数进行传值了。或者在单机checkbox时取得相应行的值,然后仍然通过URL参数的形式传值后台用request.getPrameter("");就可以了。
      

  10.   

    这个checkbox的值要了干什么呀,你要修改不是得到修改实体的id,就可以了吗?
      

  11.   


    上面写错了,后台应该改为String ids  = (String)request.getPrameter("ids");sorry!!!
      

  12.   

    这样写数据能传到Action 但是Action 返回SUCCESS 页面不按照设置跳到修改页  跳到主页面了 
    struts配置如下 <action name="updateCustomer" class="updateCustomerAction">
    <result name="success">/updatecustomer.jsp</result>
    <result name="input">/error.jsp</result>
                   </action>
    修改页面如下
    bean id="updateCustomerAction" class="com.sales.action.UpdateCustomerAction" scope="prototype">
    <property name="customerService" ref="trcustomerService"></property>
    <property name="personnelService" ref="trPersonnelService"></property>
    </bean>
    Action内容如下
          @Override
          public String execute() throws Exception
          {
    System.out.println("=====================:"+checkboxId);

    this.setCustomer(this.customerService.findById(new Integer(checkboxId)));

    System.out.println("--------------:"+this.customer.getCustomerName());

    return SUCCESS;
          }