关于struts2复选框的问题

一下午的时间啊!倒是个教训吧!!

struts2在js页面创建复选框,用同一个名称即可。action自动会接收成String字符串如果String字符串全不选则默认为action中给的默认值

也可以通过struts2的标签来实现

<s:checkboxlist id="cekF_AGENT_SPEED" list="#{1:'低速56K左右', 2:'中速56K到512K', 3:'高速512K到2M', 4:'高速2M到4M',5:'高速4M以上',6:'高速10M以上'}"
          name="filterViewVo.chkF_AGENT_SPEED" label="F_AGENT_SPEED" value="F_AGENT_SPEEDVALUE" listKey="key" listValue="value"/>

action中只需要通过filterViewVo.chkF_AGENT_SPEED的get和set方法接收即可

再来谈谈checkbox标签

开发环境:eclipse3.4.2 + weblogic10.3 + jdk1.6.0_13 + Struts2.1.8 + Spring3.0.1 + Hiberante3.3.2

    在Web系统或项目的开发过程中,jsp页面上经常会使用checkbox来实现用户多选的要求。

    普通的写法多半是这样:
    <input type=checkbox name="abc" value="1" checked>北京<br>
    <input type=checkbox name="abc" value="2">上海<br>
    <input type=checkbox name="abc" value="3">天津<br>

    那么既然使用了SSH2的开发框架,当然要使用Struts2的<s:checkbox/>标签来实现用户的多选要求。

    令人不解的是,网络上大多是在详解<s:checkboxlist/>,但对于<s:checkbox/>却描述的很少。
    今天正好要用到这个<s:checkbox/>,咱也不妨来“详解”一下子,一来是做个笔记,二来若是能为各位程序达人在关键时刻提个醒,以解决探索之苦!

    至于<s:checkbox/>和<s:checkboxlist/>的区别我不谈了,大家可以在百度上搜一下。

    其实,<s:checkbox/>还是挺好入门的,不外乎有下面几个属性,id、name、value、fieldValue、label共计5个常用属性。

    id和name: 指的是该标签的标识id和标识名。
    value   : 指是否选中,其值只能为True或False,相当于传统checkbox中的checked。
    fieldValue : 相当于传统checkbox中的value值。
    label   : 对于该checkbox显示在页面上方框后面的描述。

    还是打个简单的比方吧, 比如我要用角色id(RoleId)和角色名称(RoleName)来生成很多checkbox,那么采用如下的写法。

    <s:checkbox id="permisskey" name="permisskey" label="超级管理员" value="true" fieldValue="Role_Admin"/>
    <s:checkbox id="permisskey" name="permisskey" label="普通用户" value="false" fieldValue="Role_User"/>

    那么在生成真正的Html页面时,大约是下面这样的形式:

    <input type="checkbox" id="permisskey" name="permisskey" checked value="Role_Admin">超级管理员
    <input type="checkbox" id="permisskey" name="permisskey" value="Role_User">普通用户

    当然上面的例子建立在Struts2默认的主题(theme)下,大家可别忘了这个关键的属性“theme”。

    不妨再加个属性试试吧:

    <s:checkbox theme="simple" id="permisskey" name="permisskey" label="超级管理员" value="true" fieldValue="Role_Admin"/>
    <s:checkbox theme="simple" id="permisskey" name="permisskey" label="普通用户" value="false" fieldValue="Role_User"/>

    设置了theme="simple"之后,便自动放弃了Struts2的一些装饰。那么显示的页面上的结果会令你大吃一惊的:

    <input type="checkbox" id="permisskey" name="permisskey" checked value="Role_Admin">
    <input type="checkbox" id="permisskey" name="permisskey" value="Role_User">

    注意到没有, 后面的“超级管理员”和“普通用户”两段字眼莫名其妙的消失了。这就是theme起的主要作用。

    当然,还需要注意,这个theme是有继承性的, 比方说,这个<s:checkbox/>在一个<s:form/>里面,并且这个<s:form/>里面也设置了theme="simple"的话,就会影响到这个<s:checkbox/>,等于为该<s:checkbox/>设置了theme-"simple"。

    哈哈,就这么多了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值