1.HTML的checkbox标签
JSP页面代码:
ddddd:<input type="checkbox" name="ddddd">
<s:submit type="submim"></s:submit>
浏览器解析代码:
浏览器页面当该复选框被选择时,request请求中向后台发送的参数中,是存在ddddd标签的值true:
浏览器页面当该复选框没有选择时,request请求中向后台发送的参数中,是不包含ddddd标签的:
局限性:在使用普通的HTML标签得CheckBox标签时,复选框会提交一个Boolean值,但是,选中时提交ture,未选中是不会提交任何值
这是普通HTMLCheckBox标签的局限性。就会产生一个问题,如果在javabean中该属性的初始化为ddddd=true;选中提交时ddddd=true
没有选中时,虽然不会提交值,但是由于初始化为ddddd=true,所以可能回产生问题。
2.struts2 的checkbox标签
JSP代码:
<s:checkbox name="merried" label="Merried"></s:checkbox>
<s:submit type="submim"></s:submit>
浏览器解析代码:
复选框被选择时 复选框没有选择时
struts2 的checkbox 标签解决了这个局限性, 它采取的办法是为单个复选框元素创建一个配对的不可见字段,被选择时会传递2个参数
(merried=true 和 __checkbox_merried=true),此时struts2 解析得到两个参数,会把后台对应属性值设置为true,没有被选择时
只会传递一个参数( __checkbox_merried=true)此时struts2 解析得到1个参数会把后台对应属性值设置为fasle