0

我想将会话变量与 struts 的测试方法中的属性值进行比较 if 条件。

<s:property value="band"/>
<s:if test="#session.bandname == property value">
    <s:form action="BandPost">
        <s:textarea key="post" accesskey="post">Write a post</s:textarea>
        <s:submit/>
    </s:form> 
</s:if>

我想将 if 条件下的上述属性值与 #session.bandname 值进行比较。我尝试了很多东西,但它们不起作用。有人可以给我答案吗?

谢谢。

4

2 回答 2

1

您可以简单地引用该属性。您只需要在 Action 中使用public String getBand()方法。

<s:property value="band"/>
<s:if test="%{#session.bandname == band}">
    <s:form action="BandPost">
        <s:textarea key="post" accesskey="post">Write a post</s:textarea>
        <s:submit/>
    </s:form> 
</s:if>
于 2012-11-12T08:31:23.243 回答
0

我认为核心 JSTL可以轻松解决这个问题。

<c:set var="varForComparison" value="ABC" scope="page"></c:set>

<c:if test="${ sessionScope.varInSession eq pageScope.varForComparison }">
 // DO WHAT YOU HAVE TO
</c:if>

你甚至可以像这样直接比较请求中的bean

<c:if test="${ sessionScope.varInSession eq requestScope.beanInRequest.propertyToCompare }">
 // DO WHAT YOU HAVE TO
</c:if>

此外,如果您想要多个条件,例如 if-else 阶梯,您可以使用它

<c:choose>
  <c:when test=""></c:when>
  <c:otherwise></c:otherwise>
</c:choose>

在 c:choose 中,您可以根据需要使用尽可能多的 c:when。核心 JSTL + 表达式语言有很大帮助。希望能帮助到你。

于 2012-11-12T07:43:34.160 回答