用过Struts2(以后简称S2)标签的人可能知道,checkboxlist标签并不是很好用,今天在遇到一个页面需求的时候Google了一下,但没太满意的结果,要么就是弄的很复杂,要么写的不完整,无奈自己弄了下用iterator标签+jQuery实现参数传递,效果还算理想,记下来以免以后忘记。
简单说下需求:
这个部分是权限管理-角色添加与对应模块关联的实现过程。
流程:
1.角色列表页选择一个要‘添加/修改’关联模块的角色。
2.进入该角色对应模块列表页,要求选中之前已经关联的模块,未选的即还没关联。
3.将选好的模块跟该角色关联,显示操作结果。
实现:
主要就是下面这一个方法
<script type="text/javascript">
$(document).ready(function(){
//得到服务器传过来的原有权限id的字符串,格式自定义,我的格式为"0001;0002;xxx;"
var checkMenu = $('#checkedMenu').val();
//alert(checkMenu);
//分割字符串成数组
var array = checkMenu.split(";");
for(var i = 0 ; i < array.length ; i++){
//设置原有权限菜单处于选中状态,其中$("#0001")为id为0001的节点。
$("#"+array[i]+"").attr("checked",true);
}
$('#butn').click(function(){
//将已选模块的ID拼成 ID;ID 的字符串
var aa = "";
var i = 0;
$("input:checked").each(function(){
var j = $("input:checked").size();
if(this.checked){
i++;
aa+=this.value;
if(i != j){
aa += ";";
}
}
})
//赋值给一个变量
$('#menuIds').attr('value',aa);
//提交
$('#urForm').submit();
});
$('#selectTable').tablesorter();
});
</script>
form里的内容
<s:form id="urForm" name="urForm" method="post"
action="sysRoleAddModuleThree" namespace="/bm" theme="simple">
<s:hidden name="roleId" />
<s:hidden name="checkedMenu" id="checkedMenu" />
<s:hidden name="menuIds" id="menuIds" />
<table id="selectTable" class="tablesorter">
<thead>
<tr>
<th>选择</th>
<th>注释</th>
<th>创建时间</th>
<th>是否有效</th>
<th>链接URL</th>
</tr>
</thead>
<tbody class="data-content">
<s:iterator value="moduleList" status="stat">
<tr>
<td>
<input name="modu" type="checkbox" id='<s:property value="moduleId"/>'
value='<s:property value="moduleId"/>'>
</td>
<td><s:property value="modDeclare" /></td>
<td><s:date name='createTime' format='yyyy年MM月dd日HH点mm分' /></td>
<td><s:property value="isDisplay" /></td>
<td><s:property value="moduleUrl" /></td>
</tr>
</s:iterator>
</tbody>
<tfoot>
<tr>
<th colspan="5"><button id="butn">确认提交</button></th>
</tr>
</tfoot>
</table>
</s:form>
上面注释还算清楚,下面就没必要说明了。主要就是
id='<s:property value="moduleId"/>'
注:模块选择是有另一个直接用jQuery tree + checkbox plug in选择的实现方法,上面这个不过是另一个小需求,有空再记录那个。
分享到:
相关推荐
关于“struts2如何和ajax进行参数传递”,Struts2支持与AJAX(异步JavaScript和XML)的集成,允许不刷新整个页面的情况下更新部分视图。这通常通过使用JSON(JavaScript Object Notation)数据格式实现。开发者可以...
接着,描述中提到了`<s:iterator>`标签,这是Struts2框架中用于迭代集合的标签,常用于从后台传递到前端的数据显示。例如,如果后台返回一个列表对象,`<s:iterator>`会遍历这个列表并为每个元素生成一个对应的HTML...
在Struts2中,OGNL被用来在Action和视图之间传递数据,如在JSP中使用`<s:property value="%{variable}"/>`来输出Action中的变量值。 6. **表单数据校验(Validation)**: - Struts2提供了一套完整的验证框架,允许...
Struts2是一个强大的Java web应用...以上就是关于Struts2框架的一些核心概念、UI标签的使用、Ajax集成以及参数传递和页面值回显的基本知识。在实际开发中,还需要结合具体的业务需求和最佳实践来灵活运用这些知识点。
4. `<s:action>`:此标签用于执行一个Struts2动作,可以传递参数并获取返回结果。 5. `<s:if>`和`<s:else>`:这些标签用于条件判断,类似于Java中的if-else语句。 6. `<s:iterator>`:用于遍历集合,如数组或列表...
你可以设置`name`属性来指定Action的名字,`result`属性来定义调用成功后的跳转页面,还可以通过`parameter`属性传递参数。 2. `actionerror` 和 `actionmessage` 标签:这两个标签主要用于显示Action级别的错误和...
这里假设使用的是 Java Struts2 框架: ```java @Override public String execute() throws Exception { // 从前台接收到的查询参数 'info' 分解出字符串数组 String[] s = info.split(","); // 遍历数组,对...
这里的实现可能涉及到JavaScript或jQuery,用于处理用户的多选操作,如选中、取消选中,并将选择结果传递给后台。 5. **文件结构**:压缩包中的"homebiz"很可能包含以下文件夹和文件:源码目录(src)下有Action类...
当你需要实现复选框在页面加载时自动被选中,通常涉及到JSP(JavaServer Pages)页面中的Struts标签库以及后台Java动作类的逻辑处理。 首先,我们需要理解Struts中的表单元素。在JSP页面中,我们可以使用Struts的`...
sshe示例程序(struts2+spring3+hibernate4+easyui)(Maven构建) easyui1.2.6整站文件.zip jquery1.7.2中文API修正版.chm jquery.easyui-1.2.5源码未压缩版.rar jquery-easyui-1.2.6.zip JQuery-esqyUI中文-1.2.5API....
- **Struts2**: Struts2框架中,Action实例是线程安全的,因为框架保证每个请求都会获得一个新的Action实例。 - **Spring MVC**: 控制器(Controller)通常不是线程安全的,因为每个HTTP请求可能会共享相同的控制器...