<html:checkbox>
标签在表单上生成标准的HTML检查框,假如ActionForm Bean中的某个属性只有两种可选值(true和false),就可以在表单中用<html:checkbox>标签来表示,
<html:checkbox property="checkbox1">
property属性和ActionForm Bean中的属性相对应。
value属性,用来设置用户选中检查框时的值。默认值为true.
当使用<html:checkbox>标签时需要在ActionForm Bean的reset()方法对其复位,当<html:checkbox>value
属性为true时,必须在reset()方法中把对应的属性设置为false.当<html:checkbox>value属性为false时,必
须在reset()方法中把对应的属性设置为true.如果不进行复位,一旦用户选中checkbox那么这个checkbox将
永远为选中状态。即使用户取消了选中状态,checkbox仍为选中状态。
ActionForm中的reset()方法用来完成属性初始化,不管ActionForm Bean在那个范围内,控制器都会先调用
ActionForm中的reset()方法,然后在把表单的数据组装到ActionForm中.如果ActionForm在request范围
内,那么对于每个新的请求都会创建新的ActionForm实例,当新的实例创建后,如果他的属性已经被初始
化为默认值,那么接着在调用reset()方法初始化属性就没有必要了。因此在这种情况下,可以让reset()方
法为空。
对于session范围内的ActionForm,同一个ActionForm实例会被多个请求共享,那么reset()方法在这种情况
下极为有用。
<html:multibox>标签
同<html:chexkbox>标签一样可以提供<input type="checkbox">元素,区别他和ActionForm Bean的关联不
一样。如果应用中有多个<html:multibox>那么他在通过property属性与ActionForm Bean中的数组相关联。
当用户提交表单时,所有被选中的复选框的值都会被存放在ActionForm Bean中的相应数组中,如果某个复
选框没有被选中,那么数组就不会包含他的值。<html:multibox>可以动态决定被选中的复选框数目,只要这
些复选框的Property属性相同,而value不一样,他们就和ActionForm Bean的同一个数组对应。
<html:checkbox>与<html:multibox>区别
<html:checkbox>标签property属性和ActionForm中的一个属性相关联,
比如<html:checkbox property="checkbox1">对应ActionForm中的checkbox1属性,
<html:checkbox property="checkbox2">checkbox2属性。
此时将checkbox1属性指定为value属性表示的值,则复选框为默认选中状态。
<html:checkbox property="checkbox1" value="1"/><br> ActionForm中的checkbox1属性值=1。
如果在ActionForm中以数组形式关联<html:checkbox>标签,初始化时将没有显示。
比如:
<html:checkbox property="checkbox2" value="1">
<html:checkbox property="checkbox2" value="2">
以上<html:checkbox>标签property属性相同,那么在ActionForm中 使用如下方式使其默认选中则没有效果
private String checkbox2[]=new String[]{"1","2"};
此时应使用<html:multibox>标签
<html:multibox property="checkbox2" value="1">
<html:multibox property="checkbox2" value="2">