整了差不多一天了,查了不少资料,资料虽多,但感觉很难找到直接可以用的,经过和同事们的推导,终于算是实现了。
先说下需求,我要实现的效果是,如:角色总共有 超级管理员、管理员、财务、高级客户、普通客户,但此人的角色是管理员和普通客户。也就是说在要修改这个人角色的时候,要把所有的角色查询出来,并把他的角色自动打勾。
所以选择了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博客,转载请标明出处:
http://blog.csdn.net/bolink5/archive/2010/02/01/5278215.aspx
分享到:
相关推荐
5. **标签嵌套**:`s:checkbox`可能与其他Struts2标签或者HTML元素一起使用,如`s:checkboxlist`。在这些组合中,可能出现位置、间距等显示问题。检查并修正嵌套结构,确保正确渲染。 6. **JavaScript和jQuery插件*...
### s:checkboxlist与s:checkbox 初始值设置详解 #### 概述 在Web开发过程中,表单组件是用户交互的重要部分。其中,复选框(Checkbox)是一种常见的控件,用于允许用户选择多个选项。本文将详细介绍如何在Struts2...
在本篇文章中,我们将深入探讨如何在ASP.NET Web Forms中使用CheckBoxList控件,并通过一个具体示例来学习如何遍历CheckBoxList中的项并获取已选中的值。此过程不仅适用于免费下载场景,而且对于任何需要处理用户...
7. **CheckBoxList.aspx.cs**:这是`CheckBoxList.aspx`页面对应的代码-behind文件,通常包含了`CheckBoxList`控件的初始化、数据绑定和事件处理等逻辑。 8. **CheckBoxList.aspx**:这个文件是ASP.NET Web Forms的...
<s:checkboxlist name="interest" list="{'足球','篮球','排球','游泳'}" label="兴趣爱好" /> </s:form> ``` 9. **s:combobox** - 下拉组合框标签 `s:combobox` 结合了输入框和下拉列表,便于用户选择: ```...
此段代码首先初始化了一个名为 `name` 的字符串变量,然后遍历 `CheckBoxList1` 控件中的每一项。如果某一项被选中(即 `CheckBoxList1.Items[i].Selected` 为 `true`),则将该项的 `Value` 属性值添加到 `name` ...
例如,如果你的表单需要根据数据库中的数据动态生成复选框,那么你需要先从数据库查询这些数据,然后在JSP页面上使用`<s:checkboxlist>`或者`<s:checkbox>`标签将它们渲染出来。 在实际使用中,`<s:checkbox>`标签...
- **value 属性**:表示该属性的初始值,可以是静态值或动态表达式。 示例: ```xml <!-- 将文本框的值绑定到 Action 的 person.firstName 属性 --> <s:textfield name="person.firstName"/> <!-- 使用表达式生成...
<s:checkboxlist name="user.hobbies" list="%{#session.hobbies}"/> ``` 这里的`list`是一个预定义的列表,`name`表示后台接收的数组名。这种写法减少了代码量,但无法为每个选项添加单独的标签,可能不适合需要...
如果需要设置初始值,可以添加`value`属性,如`value="%{user.name}"`。 2. `<s:textarea>`: 用于创建多行文本输入框,与`s:textfield`类似,但用于长文本输入。例如,`<s:textarea name="user.description"></s:...
`<s:checkbox>` 标签用于创建单个复选框,而`<s:checkboxlist>` 标签则用于创建一组复选框,通常用于多选列表。 ```xml <s:checkbox name="agree" fieldValue="true" label="Agree?" /> <s:checkboxlist name=...
12. `<s:checkboxlist>`:创建复选框列表,`name`属性定义Bean属性,`list`属性用于绑定选项列表,`value`属性设置默认选中的项。 13. `<s:if>`, `<s:elseif>`, `<s:else>`:条件判断标签,用于根据表达式的值执行...
12. `<s:checkboxlist>`:用于生成多个复选框,`name`属性指定Bean的属性,`list`属性定义选项列表,同样支持默认选中。 13. `<s:if>`, `<s:elseif>`, `<s:else>`:条件判断标签,基于OGNL表达式进行逻辑判断,如`...
12. `<s:checkboxlist>`:用于创建复选框列表,`name`属性指定Bean的属性,`label`定义标签,`list`属性定义选项列表。 13. `<s:if>`, `<s:elseif>`, `<s:else>`:条件判断标签,基于OGNL表达式进行条件检查。例如...
通过遍历CheckBoxList中的每个项(ListItem),我们可以获取到被选中项的显示值和实际值。 其次,我们可以通过代码设置CheckBoxList中的某一项为选中状态。通过遍历所有项,并将符合条件的项的Selected属性设置为...
7. **s:checkbox标签**和**s:checkboxlist标签**:创建复选框,前者用于单个复选框,后者用于多个复选框的列表,通常与数组或集合属性关联。 8. **s:radio标签**和**s: radiogroup标签**:创建单选按钮,前者用于...
当我们在ListView中添加了CheckBox复选框功能时,可能需要获取被选中的项的索引值,以便进行进一步的操作,比如处理用户的选择或者更新数据库。本文将详细介绍如何在C#中获取ListView中CheckBox的索引值。 首先,...
<s:checkboxlist name="userBean.interests" list="{hibernate,spring,struts2}" /> ``` 可以设置默认选中项,例如通过`value="hibernate"`指定默认值。 #### 13. `<s:if>`, `<s:elseif>`, `<s:else>` — 条件...