文档章节

Struts2的checkbox标签

猪刚烈
 猪刚烈
发布于 2014/10/12 11:40
字数 566
阅读 10
收藏 0

     

html中的checkbox标签有一个特殊的地方,如果一个checkbox未被选中,那么它将不会出现在请求参数中。比如如下的例子:
<form action="#">
    <input type="checkbox" name="options" value="option1"/>
    <input type="checkbox" name="options" value="option2"/>
    <button type="submit">submit</button>
</form>
(补充说明:对于checkbox,如果没有显式地指明value值,那么它会有一个默认值“on”)
当我们同时选中option1和option2时,请求的URL是....?options=option1&options=option2,但是如果单独选择option1,url就会变成....?options=option1,option2的选择情况不会提交到后台。在struts2这种直接将请求参数绑定至后台数据项上的框架里,这会带来一些麻烦。如果我们想让一个option2对应到后台的boolean值,最初option2是选中的,后台对应数据值也是true,但是在当下的提交中,option2不再被勾选,但是提交的请求中却没有关于option2已不再被勾选的信息(比如给一个...$option2=off...之类的参数),这样后台option2对应的数据项就不会更新。因此,struts2的s:checkbox标签为了避免这一问题,在生成html片断的同时会生成一个隐藏域。(需要特别说明的是:struts2的s:checkbox标签和html中的checkbox是有本质区别的。s:checkbox是一种专门用来传递boolean类型数值的控件,它后台对应的数据项必须是一个boolean类型的值!因为它是通过生成html的checkbox形式来实现的,所以,它必须要生成一个隐藏域来确保当checkbox未被勾选时它能传递信息回后台。和html中的checkbox功能相类似的是s:checkboxlist,而不是s:checkbox)如:
<s:checkbox label="inStock" key="inStock"/>
将会生成如下html片断:
<input type="checkbox" name="inStock" value="true" id="ActionName_inStock"/>
<input type="hidden" name="__checkbox_inStock" value="true"/>
如果checkbox被选中,那么checkbox和隐藏域的值都会被提交。如果checkbox没被选中,隐藏域就起到了作用,它的值会提交到后台,拦截器检查发现只有隐藏域提交了,表明checkbox没有被选中,这样,拦截器会自动调用对应属性的setter并设为false。

本文转载自:http://blog.csdn.net/bluishglc/article/details/5987974

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
关于Struts2标签显示的问题

近用SSH2开发一个系统,在用到struts2 <s:checkbox >标签是发生了错位现象。如下图: 然后,我在<td><s:checkbox label="ischecked" name="checked" value="false" /></td>中添加代码 theme=......

Jerikc
2012/09/02
0
0
jquery 获取struts标签的属性的值的时候返回的是struts的表达式

这是我的struts2标签: 我在js中获取属性riskItemCode的值的时候返回的是“%{#ir.riskItem.code}"字符串,而不是这个表达式所表示的值。 请问怎么解决,多谢!!!...

小鱼吹泡泡
2012/08/11
603
1
哪位兄弟用velocity做过类似 struts2的s:select s:radio s:checkbox标签的封装?

哪位兄弟用velocity做过类似 struts2的s:select s:radio s:checkbox标签的封装? s:select 标签中选项值LIST可以是LIST对象、MAP对象、数组对象等,哪位兄弟有做过这样的封装没? 小弟想不通...

干得好差
2013/07/31
630
4
Struts2中的标签

一、控制标签 控制标签有如下9个: 1)if:用于控制选择输出的标签; 2)else/if; 3)else; 4)append:拼接集合; 5)generator:字符串解析器,拆分字符串; 6)iterator:迭代器,遍历集合; ...

小伟_乌牛
01/11
0
0
springMvc下的checkBox多选框 回显

springMvc下的checkBox多选框 回显,,,之前我写过 用struts2的 checked="true" > ${name} 现在换sp

Baclk5
2014/09/16
6.2K
1

没有更多内容

加载失败,请刷新页面

加载更多

创建第一个react项目

sudo npm i -g create-react-app@1.5.2 create-react-app react-app cd react-apprm -rf package-lock.jsonrm -rf node_modules #主要是为了避免报错npm installnpm start......

lilugirl
今天
1
0
在浏览器中进行深度学习:TensorFlow.js (八)生成对抗网络 (GAN)

Generative Adversarial Network 是深度学习中非常有趣的一种方法。GAN最早源自Ian Goodfellow的这篇论文。LeCun对GAN给出了极高的评价: “There are many interesting recent development...

naughty
今天
0
0
搬瓦工镜像站bwh1.net被DNS污染,国内打不开搬瓦工官网

今天下午(2018年10月17日),继搬瓦工主域名bandwagonhost.com被污染后,这个国内的镜像地址bwh1.net也被墙了。那么目前应该怎么访问搬瓦工官网呢? 消息来源:搬瓦工优惠网->搬瓦工镜像站b...

flyzy2005
今天
3
0
SpringBoot自动配置

本篇介绍下,如何通过springboot的自动配置,将公司项目内的依赖jar,不需要扫描路径,依赖jar的情况下,就能将jar内配置了@configuration注解的类,创建到IOC里面 介绍下开发环境 JDK版本1.8 spr...

贺小五
今天
5
0
命令行新建Maven多项目

参考地址 # DgroupId 可以理解为包名# DartifactId 可以理解为项目名mvn archetype:generate -DgroupId=cn.modfun -DartifactId=scaffold -DarchetypeArtifactId=maven-archetype-quickst......

阿白
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部