2013-02-06 11 views
5

Próbuję wysłać dwa atrybuty do strony JSP za pośrednictwem Java HttpServlet. Problem polega na tym, że oba są wyświetlane jako 0 (liczba) w moim pliku JSP.Atrybuty w żądaniu JSP stają się 0

Oto metoda doGet w moim pliku 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); 
} 

Bardzo prosty i kiedy przejść przez atrybutami są dodawane na żądanie i przeglądarka jest przekierowany do strony /register.jsp.

Oto część problemem stronie register.jsp:

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

Z jakiegoś powodu ja atrybuty dodane do wniosku że wszystko staje się „0”.

Błąd wyświetlany w przeglądarce jest:

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

Moja web.xml okrywać to istotne:

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

Używam tomcat6. To wszystko wydaje się bardzo proste i mam bardzo podobny kod działający na innych stronach, więc naprawdę walczę o to, co przeoczyłem!

Każda pomoc, bardzo doceniana.

mam javax.servlet.jsp.jstl-1.2.1.jar i javax.servlet.jsp.jstl-API-1.2.1.jar w moim/WEB-INF/lib/folderu ..

Odpowiedz

9

z specification I googled

identyfikator jest ograniczony być identyfikator Java - np, nie - nie/itp

validation-error nie jest identyfikatorem Java, ale operacja odejmowania dla validation i error. Ponieważ nie zdefiniowano te są null i dotyczy to:

1.7.1 operatory binarne - odpowiedzi {+, -, *} B ■ Jeśli A i B są nieważne, powrót (Long) 0

Więc domyślam się, że test staje się if((Long)0 == true).

Spróbuj z req.setAttribute("validationError", false);${validationError}

+0

że było! Nie jestem pewien, dlaczego w nazwach zmiennych mam łączniki .. bardzo dziękuję! –

Powiązane problemy