2010-01-13 2 views
2

Excuses Si je pose une question très bête. J'essaie une chose très simple.Struts <s:if> tag n'évalue pas

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

Cela ne fonctionne pas et j'obtiens une erreur de suivi. S'il vous plaît laissez-moi savoir Si je devrais joindre trace complète de la pile. Si j'utilise plus d'un caractère pour la valeur, alors cela fonctionne bien.

java.lang.ClassCastException: java.lang.Character ne peut pas être jeté à java.lang.String à org.apache.struts2.components.Property.start (Property.java:136) à org.apache.struts2.views.jsp.ComponentTagSupport.doStartTag (ComponentTagSupport.java:54) à org.apache.jsp.wrs.preview_005fwire_005fsplit_005famounts_jsp._jspx_meth_s_005fproperty_005f5 (preview_005fwire_005fsplit_005famounts_jsp.java:348) à org.apache.jsp.wrs. preview_005fwire_005fsplit_005famounts_jsp._jspx_meth_s_005fiterator_005f1 (preview_005fwire_005fsplit_005famounts_jsp.java:292)

Répondre

1

Correction de ce problème en procédant comme suit. .

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

converti 'à "et vice-versa

0

J'ai couru avec ma version de struts -2.0.14 je crois -. Et il semble exécuter comme vous le souhaitez

Une chose que je voudrais demander est: est le% {} vraiment nécessaire? Il ne semble pas changer quoi que ce soit