2013-02-06 65 views
5

我試圖通過Java HttpServlet將兩個屬性發送到JSP。問題是它們都在我的JSP文件中顯示爲0(數字)。JSP請求中的屬性變爲0

這裏是doGet方法在我RegisterDeveloper.java文件:

public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 
     // Fill up default attributes for the template 
     req.setAttribute("validation-error", false); 
     req.setAttribute("validation-error-message", ""); 

     // Redirect to register page 
     req.getRequestDispatcher("/register.jsp").forward(req, resp); 
} 

很簡單,當我在屬性的步驟被添加到請求和瀏覽器被重定向到/register.jsp頁面。

這裏是register.jsp頁面的問題部分:

<c:if test="${validation-error}"> 
    <div id="validationError"> 
     <span id="errorText"> 
      ${validation-error-message} 
     </span> 
    </div> 
</c:if> 

出於某種原因,我添加到請求的屬性都成爲「0」。

在瀏覽器中顯示的錯誤是:

HTTP Status 500 - javax.el.ELException: Cannot convert 0 of type class java.lang.Long to class java.lang.Boolean 

我的web.xml櫃面這是相關的:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 

    <display-name>RServer</display-name> 
    <welcome-file-list> 
     <welcome-file>homepage.html</welcome-file> 
    </welcome-file-list> 

    <servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.css</url-pattern> 
    </servlet-mapping> 

    <servlet> 
     <servlet-name>RegisterDeveloper</servlet-name> 
     <servlet-class>com.steven.RegisterDeveloper</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>RegisterDeveloper</servlet-name> 
     <url-pattern>/register</url-pattern> 
    </servlet-mapping> 

</web-app> 

我使用的Tomcat6。這一切看起來都非常簡單,而且我在其他頁面上也有類似的代碼,所以我非常努力地看到我錯過了什麼!

任何幫助,非常感謝。

我在我的/ WEB-INF/lib目錄/文件夾javax.servlet.jsp.jstl-1.2.1.jar和javax.servlet.jsp.jstl-API-1.2.1.jar ..

回答

9

specification I googled

的標識符被約束Java標識符 - 例如,無 - 無/等

validation-error不是Java標識符,但對於validation 減法運算和error。既然你還沒有定義的,它們是null和適用:

1.7.1二元運算符 - A {+, - ,*}乙■如果A和B都爲空,返回(龍)0

所以我想測試變成if((Long)0 == true)

嘗試用req.setAttribute("validationError", false);${validationError}

+0

這就是它!我不知道爲什麼我在變量名中使用連字符..非常感謝! –