我在一个JSP页面中
<s:iterator value="menus" status="st" id="menuID">
<tr>
<td id="rownum"><s:property value= '#st.index+1' /></td>
<td><s:property value="mainKind" /></td>
<td><s:property value="subKind" /></td>
<td><s:property value="menuId" /></td>
<td><s:if test='#request.stopRmk=="1"'><s:checkbox name="stoprmk" value="true" /></s:if><s:else><s:checkbox name="stoprmk" /></s:else><s:property value="stopRmk" /></td>
<td id="update">
<a href="<s:url value ='menuUpdate.jsp'>
<s:param name="mainKind"><s:property value="mainKind" /></s:param>
<s:param name="subKind"><s:property value="subKind" /></s:param>
<s:param name="menuId"><s:property value="menuId" /></s:param>
<s:param name="stopRmk"><s:property value="stopRmk" /></s:param>
</s:url>"><img src="update.png" />
</a>
</td>
</tr>
</s:iterator>
上面的代码可以真确的设置checkbox的选中状态,即:当stopRmk=="1"时,checkbox为选中状态,否则是没有选中的状态.
但是通过参数:<s:param name="stopRmk"><s:property value="stopRmk" /></s:param>传递stopRmk的值时,在跳转的目的页面中:
<td><s:if test='%{#parameters.stopRmk=="1"}'><s:checkbox name="stopRmk" value="true"/></s:if> <s:else><s:checkbox name="stopRmk" /></s:else></td>
却无法设置<s:checkbox>的选中状态:无论stopRmk的值是"1"还是"0",checkbox始终是没有选中的状态,也就是说:<s:if test='%{#parameters.stopRmk=="1"}'>总是不成立
而改为:
<s:if test='%{#parameters.stopRmk=="1"}'><s:checkbox name="stopRmk" value="true"/></s:if>
也不能正确设置checkbox的选中状态:无论stopRmk的值是"1"还是"0",始终是选中的,也就是说<s:if test='%{#parameters.stopRmk=="1"}'><s:checkbox name="stopRmk" value="true"/></s:if>
不知道这是为什么?
这个问题终于自己搞定了
<s:if test='%{#parameters.stopRmk[0]=="1"}'><s:checkbox name="stopRmk" value="true"/></s:if><s:else><s:checkbox name="stopRmk" /><s:textfield name="stopRmk" maxlength='100' value="%{#parameters.stopRmk}"></s:textfield></s:else>
或者
<s:if test='#parameters.stopRmk[0]==1'><s:checkbox name="stopRmk" value="true"/></s:if><s:else><s:checkbox name="stopRmk" /><s:textfield name="stopRmk" maxlength='100' value="%{#parameters.stopRmk}"></s:textfield></s:else>