`
ayuslove
  • 浏览: 4475 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

jQuery实现页面checkbox参数传递(Struts2)

阅读更多
用过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的详细资料

    关于“struts2如何和ajax进行参数传递”,Struts2支持与AJAX(异步JavaScript和XML)的集成,允许不刷新整个页面的情况下更新部分视图。这通常通过使用JSON(JavaScript Object Notation)数据格式实现。开发者可以...

    checkbox全选,选中数据传到后台

    接着,描述中提到了`&lt;s:iterator&gt;`标签,这是Struts2框架中用于迭代集合的标签,常用于从后台传递到前端的数据显示。例如,如果后台返回一个列表对象,`&lt;s:iterator&gt;`会遍历这个列表并为每个元素生成一个对应的HTML...

    struts2入门的学习资料.pdf

    在Struts2中,OGNL被用来在Action和视图之间传递数据,如在JSP中使用`&lt;s:property value="%{variable}"/&gt;`来输出Action中的变量值。 6. **表单数据校验(Validation)**: - Struts2提供了一套完整的验证框架,允许...

    struts2资料

    Struts2是一个强大的Java web应用...以上就是关于Struts2框架的一些核心概念、UI标签的使用、Ajax集成以及参数传递和页面值回显的基本知识。在实际开发中,还需要结合具体的业务需求和最佳实践来灵活运用这些知识点。

    第3章_Struts2标签库详解与AJAX技术应用.rar

    4. `&lt;s:action&gt;`:此标签用于执行一个Struts2动作,可以传递参数并获取返回结果。 5. `&lt;s:if&gt;`和`&lt;s:else&gt;`:这些标签用于条件判断,类似于Java中的if-else语句。 6. `&lt;s:iterator&gt;`:用于遍历集合,如数组或列表...

    jquery复选框checkbox实现删除前判断

    这里假设使用的是 Java Struts2 框架: ```java @Override public String execute() throws Exception { // 从前台接收到的查询参数 'info' 分解出字符串数组 String[] s = info.split(","); // 遍历数组,对...

    一个基于oracle 数据库的struts 的例子的源文件

    这里的实现可能涉及到JavaScript或jQuery,用于处理用户的多选操作,如选中、取消选中,并将选择结果传递给后台。 5. **文件结构**:压缩包中的"homebiz"很可能包含以下文件夹和文件:源码目录(src)下有Action类...

    strust的复选框自动怎么选中

    当你需要实现复选框在页面加载时自动被选中,通常涉及到JSP(JavaServer Pages)页面中的Struts标签库以及后台Java动作类的逻辑处理。 首先,我们需要理解Struts中的表单元素。在JSP页面中,我们可以使用Struts的`...

    SYPRO示例项目源码和EasyUI入门视频教程

    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....

    中级程序员必备面试题.txt

    - **Struts2**: Struts2框架中,Action实例是线程安全的,因为框架保证每个请求都会获得一个新的Action实例。 - **Spring MVC**: 控制器(Controller)通常不是线程安全的,因为每个HTTP请求可能会共享相同的控制器...

Global site tag (gtag.js) - Google Analytics