论坛首页 Java企业应用论坛

在Struts 2 标签中使用String类方法indexOf问题

浏览 4783 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-07-04  
需求:

显示所有的授权模块,如果当前角色拥有某一授权模块权限,那么在该模块前的多选框checked选中。

<div>
										<span>授权模块&nbsp;<span class="requiredExample">&nbsp;</span>:</span><br/>
										<s:iterator id="module" value="modules">
											&nbsp;&nbsp;&nbsp;&nbsp;<input type="checkbox" name="moduleId" value="<s:property value="#module.id"/>" <s:if test="backRole.moduleId.indexOf(#module.id) != -1">checked="checked"</s:if>/><s:property value="#module.moduleName"/><br/>
										</s:iterator>
									</div>


请注意代码中的<s:if></s:if>标签,在本地运行可以,但是上传至服务器<s:if></s:if>标签就不起作用了(服务器为linux操作系统,本地为win7操作系统)。

为什么会出现这个问题我不知道,如果前辈们知道,请告诉我。

我换了另外一种做法(Javascript实现)。

<input type="hidden" id="moduleIdStr" name="moduleIdStr" value="<s:property value="backRole.moduleId"/>"/>
  	<input type="hidden" id="len" name="len" value="<s:property value="modules.size()"/>"/>

<div>
										<span>授权模块&nbsp;<span class="requiredExample">&nbsp;</span>:</span><br/>
										<s:iterator id="module" value="modules">
											<%i++;%>
											&nbsp;&nbsp;&nbsp;&nbsp;<input type="checkbox" id="moduleId_<%=i%>" name="moduleId" value="<s:property value="#module.id"/>"/><s:property value="#module.moduleName"/><br/>
										</s:iterator>
									</div>


js代码:

jQuery(function($){
			if($('#moduleIdStr').val() != ''){
				var moduleIdStr = $('#moduleIdStr').val();
				if($('#len').val() != ''){
					var len = parseInt($('#len').val());
					for(var i = 1; i<= len; i++){
						if(moduleIdStr.indexOf($('#moduleId_' + i).val()) != -1){
							$('#moduleId_' + i).attr("checked",true);
						}else{
							$('#moduleId_' + i).attr("checked",false);
						}
					}
				}
			}
  	  	});	


这样改后就没有问题了。
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics