使用链接跳转 怎样给Struts2的Action传递一个checkbox值

cuiyinlu 2010-09-19 11:35:06
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>
...全文
794 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cuiyinlu 2010-09-20
这样写数据能传到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;
}

回复
菖蒲芭芭 2010-09-20
[Quote=引用 10 楼 flagiris 的回复:]
修改不在遍历里确实有点怪。

若是我,解决方法如下:
1)用url方式传参,在:<a href="#" onclick="return chack()">修改</a>,
链接action在脚本函数里设置。

JScript code

function chack(){

//脚本获取checked状态的所有customerId,用逗号隔开(例:guke001,guku002)……
[/Quote]

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

sorry!!!
回复
chengjing123456 2010-09-20
这个checkbox的值要了干什么呀,你要修改不是得到修改实体的id,就可以了吗?
回复
qqzhuyuehe 2010-09-20
你可以把页面稍微修改下,去掉那个checkbox,直接在每一行后面添加上删除的链接,这样就可以直接通过URL的参数进行传值了。

或者

在单机checkbox时取得相应行的值,然后仍然通过URL参数的形式传值

后台用request.getPrameter("");就可以了。
回复
菖蒲芭芭 2010-09-20
修改不在遍历里确实有点怪。

若是我,解决方法如下:
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。
回复
cuiyinlu 2010-09-20
我在js里获取到checkbox的值 怎样实现点击链接 让这个js把checkbox值传到指定Action上
回复
kala197 2010-09-20
你做的修改是针对一条数据还是多条,功能是否只是开启或者关闭,要是针对数据的修改 你把<checkbox> 名字为同一名字 JS获取到的是checkbok的数组 checkbox的值是每条数据在数据库中的ID(可以根据需求不同 这个ID的值 可以用分隔符号多放几个ID方便进行不同的修改)
回复
cuiyinlu 2010-09-20
恩 我也想用form form提交就不用这么麻烦 但是页面已经做成链接 我不能让美工再改 我就想从jsp页面传递一个checkbox选中的Id到Action里做处理 但是这个链接没有写在 s:iterator 里 我不知道怎样传到Action里 刚学着用struts 楼上能不能给发个例子写法 我邮箱361907210@163.com
回复
licip 2010-09-20
我觉得你用链接跳转这种方式不好,因为这种方式是get方法提交的,最多只能提交2K的大小。你还是用表单吧。
回复
cuiyinlu 2010-09-20
传数据也行 但是我不知道怎样通过链接跳转把数据传到Action 能不能给个实例
回复
xrythy 2010-09-19
2楼的方法我看可以
回复
cuiyinlu 2010-09-19
除了URL传参 还有没有别的方式 能不能给出具体写法
回复
海会圣贤 2010-09-19
用URL传参的方式。
回复
jonefy 2010-09-19
请问为什么要传checkbox的值? 要传入其它的数据的话,你可以用隐藏表单进行传值!
回复
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-09-19 11:35
社区公告
暂无公告