2012-08-06 95 views
0

我遇到了麻烦,希望得到您的帮助。我是Spring MVC的初学者(和Spring)。我遵循http://www.mkyong.com/spring3/spring-3-mvc-hello-world-example/但它没有工作。我添加了一个欢迎文件(index.jsp)。当我输入(http:// localhost:8080/SpringMVC)没事。但是当我添加控制器模式(http:// localhost:8080/SpringMVC/welcome)时,它不起作用(HTTP状态404)。这里我CONFIGS:Spring MVC示例不能正常工作

的web.xml

<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
    <display-name>Spring Web MVC Application</display-name> 
    <servlet> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value> 
    </context-param> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
    <welcome-file-list> 
     <welcome-file>/index.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 

MVC-调度-servlet.xml中

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
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.mkyong.common.controller" /> 
    <bean 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix"> 
      <value>/WEB-INF/pages/</value> 
     </property> 
     <property name="suffix"> 
      <value>.jsp</value> 
     </property> 
    </bean> 
</beans> 

和我的文件夹结构是:

-> src 
    -> main 
     -> java 
     -> com 
      -> mkyong 
       -> common 
        -> controller 
        -> HelloController.java 
     -> resources 
     -> webapp 
     -> index.jsp 
     -> WEB-INF 
      -> mvc-dispatcher-servlet.xml 
      -> web.xml 
      -> pages 
       -> hello.jsp 

有人可以帮我?

+0

我可以推荐将日志级别转换为DEBUG并查看Spring打印出的内容 - 如果Spring DispatcherServlet获取请求,则会在日志中看到很多应明确指出错误的信息。 – 2012-08-06 19:01:27

+0

我该怎么做? – 2012-08-06 19:07:21

+0

试着将这些内容在classpath中log4j.properties文件 - log4j.rootLogger =跟踪,标准输出 log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout = org.apache .log4j.PatternLayout log4j.appender.stdout.layout。ConversionPattern =%d [%t]%-5p%c - %m%n – 2012-08-06 19:17:44

回答

1

404意味着无法找到请求的资源。确保您的控制器都被注解:

@Controller and @RequestMapping("/welcome") 

从链接:

@Controller 
@RequestMapping("/welcome") 
public class HelloController { 

    @RequestMapping(method = RequestMethod.GET) 
    public String printWelcome(ModelMap model) { 

     model.addAttribute("message", "Spring 3 MVC Hello World"); 
     return "hello"; 

    } 

} 
+0

类** HelloController **用** @ Controller,RequestMapping **标记,因为它必须是。 – 2012-08-06 18:24:00

0

你有你的servlet映射到“/”,和你想打控制器被接受为“/欢迎请求'

您需要制作的请求应该是(http:// localhost:8080/welcome)。我不知道他为什么在他的例子中有额外的'SpringMVC'。

此外,将<mvc:annotation-driven/>添加到您的mvc-dispatcher-servlet.xml,以确保它在您的控制器上使用注释。并且还添加mvc XML命名空间。我命名空间是这样的:

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:mvc="http://www.springframework.org/schema/mvc" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:security="http://www.springframework.org/schema/security" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
    http://www.springframework.org/schema/mvc 
    http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.1.xsd 
    http://www.springframework.org/schema/security 
    http://www.springframework.org/schema/security/spring-security-3.1.xsd"> 

我建议摆脱该欢迎文件,直到你有你的控制器正常工作,让事情变得简单

+0

发出这样的请求** http:// localhost:8080/welcome **仍然返回HTTP状态404。我不知道发生了什么。 – 2012-08-06 18:36:20

+0

你使用的是什么版本的春天? – MStodd 2012-08-06 18:37:18

+0

** 3.0.5.RELEASE **根据** pom.xml **。 – 2012-08-06 18:41:41

0

您必须映射到“/”的控制器。

@Controller 
@RequestMapping("/") 
public class StartController { 

    @RequestMapping(method = RequestMethod.GET) 
    public String printWelcome(ModelMap model) { 

    model.addAttribute("message", "Spring 3 MVC Hello World"); 
    return "hello"; 

    } 

} 
0

包括对你的看法这个库,使${}

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

这将解决您的问题。