Struts2:set tag不适用于某些变量名

时间:2014-10-21 15:54:58

标签: java struts2

考虑我的jspPage上的以下片段:

<s:set var="selectedAccount" value="userSelectedAccount"/>
<s:set var="rootAccount" value="userRootAccount"/>

<p>name:<s:property value="%{#rootAccount.getName()}"/></p>
<p>equals: <s:if test='%{#selectedAccount.equals(#rootAccount)}'>true</s:if></p>

我希望在浏览器中看到以下输出:

name: account5
equals: true

出于某种原因,它似乎无法工作,我只看到硬编码的文字:

name:
equals:

在我的IDE(Eclipse)中,我看到equals方法实际上正在执行,它返回true!这是什么巫术?所以我绝望了,试图摆弄一切。最后我发现如果我改变var =&#34; ...&#34;别的东西:

<s:set var="randomstring" value="userRootAccount"/>
<s:set var="notroottest" value="userRootAccount"/>

然而,它不能使用以下名称:

<s:set var="root" value="userRootAccount"/>
<s:set var="roottest" value="userRootAccount"/>
<s:set var="rootAccount" value="userRootAccount"/>

这种随机性毫无意义。我没有其他变量或属性称为&#34; root&#34;或&#34; roottest&#34;或rootAccount&#34;在任何地方,也没有getRoot()或getRootAccount()方法。我唯一拥有的是getUserRootAccount()方法,它返回一个帐户对象。我犯了什么错误?

0 个答案:

没有答案