如何评估struts 2:如果?

Tit*_*ore 5 struts2

我有一个名为'item'的对象.它有一个叫'类型'的属性

当我这样做:

<s:property value="item.type" />
Run Code Online (Sandbox Code Playgroud)

我明白了:问:

好的,所以我可以读取值,但是当我尝试这个:

<s:property value="item.type == 'Q'" /> 
Run Code Online (Sandbox Code Playgroud)

我得到一个空字符串

这给我一个空字符串:

<s:property value="%{#item.type == 'Q'}" />
Run Code Online (Sandbox Code Playgroud)

我甚至试过这个:

<s:property value="item.type.equals('Q')" />
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个字符串:false

我如何得到'真实'?

小智 15

好吧,我一直在努力奋斗......并最终找到了如何做到这一点."Q"是字符串文字,而"Q"是字符.因此...

<s:if test="%{#item.type == 'Q'}">
Run Code Online (Sandbox Code Playgroud)

总是评估为假.而是试试......

<s:if test="%{#item.type == \"Q\"}">
Run Code Online (Sandbox Code Playgroud)

我也看到过这样做......

<s:if test='%{#item.type == ("Q")}'>
Run Code Online (Sandbox Code Playgroud)

(注意测试属性值周围的单引号.)

OGNL是我身边的一根刺.我猜测OP已经解决了这个问题.但希望这有助于其他人.