1

我在我的jsp中以下列方式在scriptlet中创建了变量

<% int count= 0; %>

根据某些条件,我正在增加变量值......(现在认为“计数”值为 5

现在,如果“计数”值为0,我必须使用 struts2 标签进行一些处理

我尝试了以下方法。但我失败了......

<s:if test="#count == 0" > 
   --------
   -------- 
</s:if>  

<s:if test="%{#count == 0}" >  
</s:if>  

提前致谢

4

2 回答 2

1

不要使用小脚本

<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。

于 2012-04-11T12:31:33.703 回答
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 set 标签的工作方式(如果不是一个好主意,它仍然有点教育意义)。

于 2012-04-11T21:57:58.143 回答