文档章节

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
Struts2 OGNL EL JSTL 四大标签的区别 (原帖不明。自留)

我之前虽然会用,但是一直分不清彼此之间有什么区别,所以查找资料,将它们进行整合区分,加深了解, 一 介绍 1.Struts2的作用 Struts2标签库提供了主题、模板支持,极大地简化了视图页面的...

SLoan_
2016/11/04
68
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

jquery创建类似于java的map

var map = {}; // Map map = new HashMap(); map[key] = value; // map.put(key, value); var value = map[key]; // Object value = map.get(key); var has = key in map; // boolean has = ......

SuperDabai
31分钟前
0
0
java大数据转换16进制转10进制

public static void main(String[] args) {String hex = "0xdbf3accc683297cf0000";BigInteger amount = new BigInteger(hex.substring(2), 16);System.out.println(amount);......

任梁荣
昨天
1
0
OSChina 周六乱弹 —— 目测我们程序员丁克的几率不大

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @真Skr小机灵鬼儿:8.13分享Jocelyn Pook/Russian Red的单曲《Loving Strangers》 《Loving Strangers》- Jocelyn Pook/Russian Red 手机党少...

小小编辑
昨天
9
3
TypeScript基础入门 - 函数 - 剩余参数

转载 TypeScript基础入门 - 函数 - 剩余参数 项目实践仓库 https://github.com/durban89/typescript_demo.gittag: 1.2.1 为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能...

durban
昨天
1
0
OpenCV边缘检测算子原理总结及实现

1. 拉普拉斯算子 原理:是一种基于图像导数运算的高通线性滤波器。它通过二阶导数来度量图像函数的曲率。 拉普拉斯算子是最简单的各向同性微分算子,它具有旋转不变性。一个二维图像函数的拉...

漫步当下
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部