经常遇到需要循环一个数字的情况,其实特别简单,demo如下,测试管用:
1、假如是在一个s:iterator标签的内循环使用,可以直接这样用:
<s:iterator begin="1" end="5">
<li></li></s:iterator>
。会循环5次。
2、假如是在最外面标签直接使用,需要再Action里面定义一个field,然后给这个field设置get/set方法,
private Integer aixin;
getter/setter方法,
在方法里赋值 aixin = patienttab.getAixin() == null ? 0 : patienttab.getAixin();
<ul class="clearfix"><s:property value="#request.patienttab.aixin"/>
<s:iterator begin="1" end="aixin">
<li></li>
</s:iterator>
<s:iterator begin="1" end="5-aixin">
<li class="nochoose"></li>
</s:iterator>
</ul>
这样,在jsp页面的代码里就可以直接接收到。
注意,s:iterator的end属性不能接收request里面的值,所以只能这样写。
3、判断字符串相等:
<s:if test='%{#session.Patienttab.xb== "男"}'>♂</s:if>
<s:elseif test='%{#session.Patienttab.xb == "女"}'>♀</s:elseif>测试正确。
下面这种写法是错误的:
<s:if test="#session.Patienttab.xb== 男">♂</s:if>
<s:elseif test="{#session.Patienttab.xb == 女}">♀</s:elseif>
。demo:
<s:if test='#user.userSex== "M"'>男</s:if>正确
<s:if test='%{#user.userSex== "M"}'>男</s:if>正确
上面两条写法正确,下面一条写法错误:
<s:if test="#user.userSex== 'M'">男</s:if>错误
这样写是错误的.