如何在Struts 2中将两个布尔值与OGNL连接起来?

时间:2014-06-05 09:39:25

标签: java jsp struts2 struts ognl

我有两个变量设置如下:

<s:set var="A" value="true" />
<s:set var="B" value="false" />

我想使用自定义属性info生成下面的HTML:

<td info="truefalse">&#160;</td>

我在JSP文件中尝试了以下行,但我无法在true旁边获取false

<td info="<s:property value="#A?'true':'false'+#B?'true':'false'""/>&#160;</td>

输出:<td info="true">&#160;</td>

<td info="<s:property value="#A" /><s:property value="#B" />">&#160;</td>

输出:<td info="false">&#160;</td>

3 个答案:

答案 0 :(得分:2)

OGNL使用+来连接字符串。要将布尔值转换为字符串,您应该执行类似

的操作
<s:property value="%{''+#A+#B}"/> 

答案 1 :(得分:1)

使用<s:if>试试这个

<s:set var="A" value="true" />
<s:set var="B" value="false" />

<td info="<s:if test="%{#A==true}">true</s:if><s:else>false</s:else><s:if test="%{#B==true}">true</s:if><s:else>false</s:else>">&#160;</td>
 OR
<td info="<s:property value="#A" /><s:property value="#B" />">&#160;</td>

<强>输出:

<td info="truefalse">&#160;</td>

原因:您无法连接Boolean。您需要将Boolean转换为string,并且只能连接strings

答案 2 :(得分:0)

试试这个可能对你有帮助..

<td info="<s:property value="A"></s:property><s:property value="B"></s:property>">&#160;</td>