JQuery

解决在Struts中操作checkbox遇到的问题

在Struts中,操作checkbox控件时经常会遇到一些棘手的问题。如果页面上的checkbox初始没有值,这时你点上勾,Action可以取到这个checkbox的值(true)。但一旦formBean取得值,就把它保存下来,即使你点掉,Action得到的值仍然是(true)。换句话说,一旦formBean保存了checkbox的值,无论你在页面怎么点选,Action取得的值不会变。

    初次遇到这个问题可能会很迷惑,下面就简单介绍一下解决的办法:

    我们知道formBean是继承ActionForm的,在ActionForm中有一个没有实现的方法reset(),这个方法是在Action的方法之前执行的,这就是解决问题的关键。既然formBean能保存了checkbox的值(可能来自页面,也可能来自数据库),就不通过Action取得页面的值了,那么我们就可以利用reset()方法在每次提交时先将formBean里的值初始化。

    在formBean中加一个方法reset()或者resetFormBean()

xxx_form.java
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionMapping;
………
public void resetFormBean(ActionMapping mapping, HttpServletRequest request)
{
        this.checked = false;
}
………

    这样,每次提交,Action都会取到页面上的值了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值