2016-10-02 2 views
0

Regardez d'abord le code suivant:JSP: obtention de "javax.el.ELException". Travailler à GlassFish, mais pas dans Apache Tomcat

<c:choose> 
    <c:when test="${type != 'h'}"> 
     <input type="password" disabled="true" id="plainText" name="plainText" value="<%=key%>"/> 

Le code ci-dessus est une partie de JSP que j'ai créé. Type de variable est initialisé à l'aide:

pageContext.setAttribute("type", type);

Cette JSP fonctionne parfaitement bien lorsqu'il est déployé et utilisé GlassFish Server, mais montrant javax.el.ELException: Cannot convert h of type class java.lang.String to class java.lang.Long exception lorsqu'il est déployé sur Apache Tomcat Server.

J'ai été déployé sur le serveur GlassFish en utilisant Netbeans automatiquement, alors qu'il était déployé sur le serveur Tomcat manuellement en utilisant le fichier WAR.

Quel est exactement le problème?

+0

donc de quel type est 'type' dans votre code source? – home

+0

type de caractère. –

Répondre

0

Trouvé la solution, Comme type est un caractère. Le code suivant: <c:when test="${type != 'h'}"> doit être écrit <c:when test="${type != 'h'.charAt(0)}">

Maintenant, il travaille.

0

Peut-être que votre GlassFish utilise une version différente EL que Tomcat ...

Pour plus de détails: JSP comparison operator behaviour

Vérifiez également que le 'type' dans pageContext.setAttribute (type "type") est une chaîne et non une valeur INT ou LONG.

+0

La version EL dans Tomcat est v3.0. Je ne suis pas en mesure d'obtenir la version EL dans GlassFish. Deuxièmement, 'type' est de type caractères. –

+0

Trouvé la solution..Comparer les caractères doit être fait avec '.charAt (0)'. Merci pour l'aide. –

+0

Vous êtes les bienvenus :-) –