s:checkboxlist s:checkbox 初始值设置

整了差不多一天了,查了不少资料,资料虽多,但感觉很难找到直接可以用的,经过和同事们的推导,终于算是实现了。

先说下需求,我要实现的效果是,如:角色总共有 超级管理员、管理员、财务、高级客户、普通客户,但此人的角色是管理员和普通客户。也就是说在要修改这个人角色的时候,要把所有的角色查询出来,并把他的角色自动打勾。

所以选择了S2的标签 s:checkboxlist

前台jsp代码很简单只要区区一行代码

view plaincopy to clipboardprint?
<s:checkboxlist name="chostypes" list="#request.allTypeList" listKey="id" listValue="msgtypename" value="#request.chooseTypeList">
</s:checkboxlist>
<s:checkboxlist name="chostypes" list="#request.allTypeList" listKey="id" listValue="msgtypename" value="#request.chooseTypeList">
</s:checkboxlist>




下面逐个解释下参数的含义:

name 属性不可少,你可以自己取名字。

list 所有的角色(数据库中的存在的所有角色,值为一个list)

listKey 和 listValue 对应的值是一个bean中的值,并有相应的get和set方法。

listKey 是所有角色中的 ID属性

listValue 就是角色的名称

value 中的值是选中的角色(必须是一个list,并且保存的是字符串,即使是id属性也要转化为字符串)

如此就结束了。



方法二、 采用js控制

相关代码帖下就OK了

view plaincopy to clipboardprint?
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<body>

<!-- 全部 -->
<property value="#request.allTypeList"/>
<div id="allTypes" >
<s:iterator value="#request.allTypeList" id="alltype">
<input type="checkbox" lang="<s:property value="#alltype.id"/>"/><s:property value="#alltype.msgtypename"/>
</s:iterator>
</div>

<!-- 已经选中的 -->
<div id="ischecked" style="display: none" mce_style="display: none">
<s:iterator value="#request.chooseTypeList" id="choosetype">
<span><s:property value='#choosetype.infortypeid'/></span>
</s:iterator>
</div>

<mce:script type="text/javascript"><!--
$(document).ready(function (){
$("#ischecked").find("span").each(function(){
var checkVal=$(this).html();
$("#allTypes").find("input").each(function(){
var thisLang=$(this).attr("lang");
if(checkVal==thisLang){
$(this).attr("checked",true);
}
});
});


});
// --></mce:script>
</html>
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<body>

<!-- 全部 -->
<property value="#request.allTypeList"/>
<div id="allTypes" >
<s:iterator value="#request.allTypeList" id="alltype">
<input type="checkbox" lang="<s:property value="#alltype.id"/>"/><s:property value="#alltype.msgtypename"/>
</s:iterator>
</div>

<!-- 已经选中的 -->
<div id="ischecked" style="display: none" mce_style="display: none">
<s:iterator value="#request.chooseTypeList" id="choosetype">
<span><s:property value='#choosetype.infortypeid'/></span>
</s:iterator>
</div>

<mce:script type="text/javascript"><!--
$(document).ready(function (){
$("#ischecked").find("span").each(function(){
var checkVal=$(this).html();
$("#allTypes").find("input").each(function(){
var thisLang=$(this).attr("lang");
if(checkVal==thisLang){
$(this).attr("checked",true);
}
});
});


});
// --></mce:script>
</html>




简单总结下,希望能对碰到类似问题的人点帮助。


本文来自CSDN博客,转载请标明出处:[code="java"][/code]http://blog.csdn.net/bolink5/archive/2010/02/01/5278215.aspx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值