2016-07-01 15 views
1

Mein Projekt ist es, einen Endbenutzer anmelden und dann auf eine andere Seite gehen, um eine Nachricht anzuzeigen. Wenn die Anmeldedaten falsch sind, wird eine entsprechende Fehlermeldung angezeigt und ihnen wird eine weitere Möglichkeit zum Anmelden gegeben. Das Problem besteht darin, dass die Nachricht, die angezeigt werden soll, nicht angezeigt wird. Stattdessen wird alles angezeigt;Spring MVC-Modell zeigt keine Zeichenfolge

Message is: ${message} 

index.jsp

<form action="login.html" method="post"> 
    Name: <input type="text" name="name"/> 
    Password: <input type="password" name="password"/> 
    <input type="submit" value="submit"/> 
</form> 

LoginController.java

package com.loginmvc.domain; 

@Controller 
public class LoginController { 

@RequestMapping("/login") 
public ModelAndView login(HttpServletRequest req, HttpServletResponse resp) 
    throws ServletException, IOException { 

    String name = req.getParameter("name"); 
    String password = req.getParameter("password"); 

    if(password.equals("admin")) {   
     String message = "Welcome " + name; 
     return new ModelAndView("profilepage", "message", message); 
    } else { 
     return new ModelAndView("errorpage", "message", 
       "Sorry, the name or password is incorrect."); 
    } 
    } 
} 

web.xml

<!DOCTYPE web-app PUBLIC 
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd" > 
<web-app> 
    <servlet> 
    <servlet-name>spring</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>spring</servlet-name> 
    <url-pattern>*.html</url-pattern> 
    </servlet-mapping> 
</web-app> 

feder servlet.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 

    <context:component-scan base-package="com.loginmvc.domain" /> 
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix" value="/WEB-INF/jsp/" /> 
     <property name="suffix" value=".jsp" /> 
    </bean> 
</beans> 

Antwort

1

Sie verwenden einen alten Deskriptor in Ihrer web.xml Datei. Dies wird in dem EL führt ignoriert:

<!DOCTYPE web-app PUBLIC 
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd" > 
<web-app> 

Wenn Sie ein Tutorial folgen, würde ich empfehlen, dass Sie eine neuere Version zu finden. Doch in der Zwischenzeit Ihre web.xml Aktualisierung sollte Ihre unmittelbare Problem lösen:

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

Hallo, habe ich versucht, aber leider zeigt es immer noch nicht die Zeichenfolge. Das Lustige ist, dass ich gestern Strings anzeigen konnte. – TheRealRave

0

Stellen Sie sicher, dass Sie verwenden: Diese Taglib in Ihrer JSP

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

und Nachricht drucken: <c:if test="${not empty message}">${message}</c:if>

Ich empfehle dringend, IDE wie Eclipse oder Netbeans zu verwenden, so dass Taglib-Fehler und Warnungen in Ihrem JSP einfach zu erkennen sind.