我在jsp中以如下方式在scriptlet中创建了变量
<% int count= 0; %>
基于某些条件我正在递增变量值......(现在认为'count'值为5 )
现在,如果使用struts2标记'count'值 0 ,我必须做一些处理
我尝试了以下方法。但我失败了................
<s:if test="#count == 0" >
--------
--------
</s:if>
<s:if test="%{#count == 0}" >
</s:if>
提前致谢
答案 0 :(得分:1)
不要使用scriptlet
<s:bean name="org.apache.struts2.util.Counter" var="counter">
<s:param name="first" value="0"/>
<s:param name="last" value="5" />
</s:bean>
<s:iterator value="#counter">
<li><s:property /></li>
</s:iterator>
它将打印0到5。
答案 1 :(得分:0)
每个人都告诉过你这不是个好主意......如果你想要一个坏主意那么:
以下必须位于JSP的顶部:
<%@ page import="com.opensymphony.xwork2.ActionContext" %>
<%@ page import="com.opensymphony.xwork2.util.ValueStack" %>
在JSP中的某个地方之后:
<%
int i = 0;
ValueStack stack = ActionContext.getContext().getValueStack();
stack.getContext().put("varName", i);
stack.setValue("#attr['varName']", i, false);
%>
那么这应该有效:
<s:property value="#varName"/> <!-- prints 0 -->
我没有花时间测试这个,但这就是struts2设置标签如何完成它的工作(如果不是一个好主意,它仍然有点教育)。