<s:set var="sum" value="0"/>
<div class="conma" id="conmacontent" style="top:70px;">
<s:iterator value="{null,null,1,2,3,4}" id="item" status="st">
<s:if test="%{#item == null}">
<s:set var="t_sum" value="0"/>
</s:if><s:else>
<s:set var="t_sum" value="#item"/>
</s:else>
<p>key:${t_sum } </p>
<s:set var="sum" value="#sum + #t_sum "/>
</s:iterator>
<p>sum:${sum }</p>
</div>
ps:sum:10
%{}:取出存在值堆栈中的Action对象
%{#}是Struts2为其解决兼容性问题
-->1.上例不能判断不能%{}替换
%{#}与%{}都可以用于计算表达式。
注意:%{#}操作可以是变量,变量用于计算时不能省略#
2.#item 和 #sum + #t_sum 都不能用${}替换
#
a. 访问OGNL上下文和Action上下文,#相当于ActionContext.getContext()
-->可以查看ActionContext中有用的属性
b.构造Map,如#{'foo1':'bar1', 'foo2':'bar2'}
$
a.在Struts 2配置文件中,引用OGNL表达式
<div class="conma" id="conmacontent" style="top:70px;">
<s:iterator value="{null,null,1,2,3,4}" id="item" status="st">
<s:if test="%{#item == null}">
<s:set var="t_sum" value="0"/>
</s:if><s:else>
<s:set var="t_sum" value="#item"/>
</s:else>
<p>key:${t_sum } </p>
<s:set var="sum" value="#sum + #t_sum "/>
</s:iterator>
<p>sum:${sum }</p>
</div>
ps:sum:10
%{}:取出存在值堆栈中的Action对象
%{#}是Struts2为其解决兼容性问题
-->1.上例不能判断不能%{}替换
%{#}与%{}都可以用于计算表达式。
注意:%{#}操作可以是变量,变量用于计算时不能省略#
2.#item 和 #sum + #t_sum 都不能用${}替换
#
a. 访问OGNL上下文和Action上下文,#相当于ActionContext.getContext()
-->可以查看ActionContext中有用的属性
b.构造Map,如#{'foo1':'bar1', 'foo2':'bar2'}
$
a.在Struts 2配置文件中,引用OGNL表达式
3.${t_sum}和${sum}不能与#替换
个人总结:struts2标签内不能用${}表达式