Struts <s:if>标记不评估</s:if>

时间:2010-01-13 18:07:17

标签: struts2

道歉如果我问一个非常愚蠢的问题。 我正在尝试一件非常简单的事情。

<s:set name="tranType" value="%{'S'}" />
<s:if test="%{#tranType == 'S'}">
     blah
</s:if>

这不起作用,我收到以下错误。请告诉我如果我应该附上完整的堆栈跟踪。如果我在值中使用多个字符,那么它运行正常。

  
    

java.lang.ClassCastException:java.lang.Character无法强制转换为java.lang.String             在org.apache.struts2.components.Property.start(Property.java:136)             在org.apache.struts2.views.jsp.ComponentTagSupport.doStartTag(ComponentTagSupport.java:54)             at org.apache.jsp.wrs.preview_005fwire_005fsplit_005famounts_jsp._jspx_meth_s_005fproperty_005f5(preview_005fwire_005fsplit_005famounts_jsp.java:348)             at org.apache.jsp.wrs.preview_005fwire_005fsplit_005famounts_jsp._jspx_meth_s_005fiterator_005f1(preview_005fwire_005fsplit_005famounts_jsp.java:292)

  

2 个答案:

答案 0 :(得分:1)

通过执行以下操作来解决此问题。

<s:set name="tranType" value='%{"S"}' />
<s:if test='%{#tranType == "S"}'>
     blah
</s:if>

将'转换为',反之亦然。

答案 1 :(得分:0)

我用我的struts -2.0.14版本运行了这个 - 我相信 - 它似乎按照需要执行。

我想问的一件事是:%{}真的有必要吗?它似乎没有改变任何东西。