2013-02-06 35 views
5

Tôi đang cố gắng gửi hai thuộc tính cho một JSP thông qua một Java HttpServlet. Vấn đề là cả hai đều xuất hiện dưới dạng 0 (số) trong tệp JSP của tôi.Các thuộc tính trong yêu cầu JSP trở thành 0

Dưới đây là phương pháp doGet trong tập tin RegisterDeveloper.java tôi:

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); 
} 

Rất đơn giản và khi tôi bước qua các thuộc tính được thêm vào yêu cầu và trình duyệt được chuyển hướng đến trang /register.jsp.

Đây là một phần vấn đề của trang register.jsp:

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

Đối với một số lý do các thuộc tính tôi thêm vào yêu cầu tất cả đều trở thành '0'.

Các lỗi hiển thị trong trình duyệt là:

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

web.xml của tôi trong trường hợp nó có liên quan:

<?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> 

Tôi đang sử dụng Tomcat6. Điều này dường như rất thẳng về phía trước, và tôi có mã rất giống với các trang khác, vì vậy tôi thực sự đang cố gắng để xem những gì tôi đã bỏ lỡ!

Bất kỳ trợ giúp nào, được đánh giá cao.

Tôi có javax.servlet.jsp.jstl-1.2.1.jar và javax.servlet.jsp.jstl-api-1.2.1.jar trong tôi/WEB-INF/lib/thư mục ..

Trả lời

9

Từ một specification I googled

một định danh được hạn chế được một định danh Java - ví dụ, không có -, không có/vv

validation-error không phải là một định danh Java, nhưng một hoạt động trừ cho validationerror. Kể từ khi bạn chưa xác định đó, họ null và điều này được áp dụng:

1.7.1 khai thác Binary - A {+, -, *} B ■ Nếu A và B là null, return (Long) 0

Vì vậy, tôi đoán thử nghiệm sẽ trở thành if((Long)0 == true).

Hãy thử với req.setAttribute("validationError", false);${validationError}

+0

Đó là nó! Tôi không chắc tại sao tôi lại có dấu gạch ngang trong tên biến của mình .. cảm ơn rất nhiều! –

Các vấn đề liên quan