支柱

时间:2013-06-07 23:30:24

标签: jsp struts2 ognl

尝试评估以下但似乎无法正常工作

  <s:set name="infoType" value='%{"info.aero.aeroType"}' />
  <s:if test='%{#infoType == "A"}'>
    <span> got it </span>
</s:if>

aeroType的返回类型是在Java类中设置的String,它返回字母“A”或“B”。如果infoType是A,我需要执行一些计算。如何使这个工作?

1 个答案:

答案 0 :(得分:1)

  1. 使用 var 代替名称because it is deprecated

  2. General info on validating one character Strings(你已经在翻译引号,然后这部分是正确的)

  3. 这是您的真正问题:您在<s:set 附近加上双引号;这样你就告诉OGNL采用那个文字字符串,而不是从堆栈中读取一个对象;

  4. 然后改变这个

    <s:set name="infoType" value='%{"info.aero.aeroType"}' />
    

    到这个

    <s:set var="infoType" value="%{info.aero.aeroType}" />
    

    它会工作