2016-10-02 16 views
0

首先看看:JSP:獲取「javax.el.E​​LException」。下面的代碼在GlassFish中工作,而不是在Apache Tomcat上

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

上面的代碼,我已經創建了JSP的一部分。部署和使用GlassFish應用服務器,但顯示的Apache Tomcat服務器上部署時javax.el.ELException: Cannot convert h of type class java.lang.String to class java.lang.Long異常,當

pageContext.setAttribute("type", type);

這個JSP是工作完美的罰款:使用變量類型被初始化。

我使用Netbeans自動部署在GlassFish服務器上,而使用WAR文件手動部署在Tomcat服務器上。

究竟是什麼問題?

+0

那麼在你的源代碼中type是什麼類型? – home

+0

字符類型。 –

回答

0

找到解決方案,因爲type是一個字符。下面的代碼: <c:when test="${type != 'h'}"> 應該寫成 <c:when test="${type != 'h'.charAt(0)}">

現在,它的工作。

0

也許你的GlassFish使用一個不同的EL版本比Tomcat的...

有關詳細信息: JSP comparison operator behaviour

還要確保 '類型' 中pageContext.setAttribute( 「類型」,類型)是一個字符串,而不是一個INT或LONG值。

+0

Tomcat中的EL版本是v3.0。我無法在GlassFish中獲得EL版本。其次,'type'是字符類型。 –

+0

找到解決方案。比較字符是用'.charAt(0)'完成的。 感謝您的幫助。 –

+0

歡迎您:-) –

相關問題