Spring MVC Hello World application not working

半腔热情 提交于 2019-12-24 07:37:18

问题


I'm new to Spring MVC and I'm trying to write a simple web app to get started with Spring.

Here's what I have:

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>HatifimWeb</display-name> 
    <welcome-file-list> 
        <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
    <servlet> 
        <servlet-name>main</servlet-name> 
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
        <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
        <servlet-name>main</servlet-name> 
        <url-pattern>/</url-pattern> 
    </servlet-mapping> 
</web-app>

main-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="springapp.controller" /> 
    <bean id="viewResolver" 
        class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
        <property name="viewClass" 
            value="org.springframework.web.servlet.view.JstlView" /> 
        <property name="prefix" value="/WEB-INF/jsps/" /> 
        <property name="suffix" value=".jsp" /> 
    </bean> 
</beans>

LoginController.java

package springapp.controller; 

import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.servlet.ModelAndView; 

@Controller 
public class LoginController { 

    @RequestMapping("/Login") 
    public ModelAndView handleRequest() throws Exception { 
        System.out.println("Login..."); 

        return new ModelAndView("Login", "message", "test"); 
    } 

} 

index.jsp

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
    Hello. 
    <br /> 
    <a href="Login">login</a> 
</body> 
</html> 

Login.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>poopidipoo</title> 
</head> 
<body> 
    ${message} 
</body> 
</html>

The index.jsp starts well, but when I click to navigate to the login page, I get 404. I'm using Tomcat 7. And I'm out of ideas, it looks like the DispatcherServlet is not being invoked for some reason.

What could be the problem?

Thanks in advance.


回答1:


The issue could be that you are missing the context path in your page, try this way:

<a href="${pageContext.request.contextPath}/Login">login</a> 

Update:

Can you please also add <mvc:annotation-driven/> to your main-servlet.xml



来源:https://stackoverflow.com/questions/11915715/spring-mvc-hello-world-application-not-working

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!