在带有JSP应用程序的现有Spring中使用Spring MVC

时间:2014-01-08 09:31:00

标签: java spring jsp spring-mvc

我尝试将Spring MVC应用到我现有的应用程序中,但即使花了几个小时试图弄清楚什么是错误的,它仍然无法工作。带有Spring应用程序的JSP已经运行没有问题,并且仍在运行。每次请求应该适合MVC servlet的模式时,它都会被实际发送给它。但是我无法在控制器中捕获它。

首先我在web.xml中定义了使用过的servlet

    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>PdfServlet</servlet-name>
        <servlet-class>servlet.PdfServlet</servlet-class>
    </servlet>

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-   class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.htm</url-pattern>    
    </servlet-mapping>

然后我创建了servlet文件dispatcher-servlet.xml,只有以下属性:

<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>

<context:component-scan base-package="at.htlstp.app.mvc"/>

<context:annotation-config />

现在给定的Controller被实例化了,我能够找到@PostConstruct方法。但是没有在请求中调用它。

@Controller
//@RequestMapping(value = "*.htm")
public class AndroidController implements Serializable {

    @PostConstruct
    private void setup() {
        System.out.println("Class created!");
    }


    @RequestMapping(value = "test.htm", method = RequestMethod.GET)
    public String findDepatment() {
        System.out.println("Method called");
        return "<H1>bar</H1>";
    }

}

每当我尝试使用匹配的* .htm请求请求应用程序时,我只会收到以下错误。

WARNING: No mapping found for HTTP request with URI [/ViewMyMarks/test.htm] in DispatcherServlet with name 'dispatcher' 

如果您过去遇到同样的问题,我将非常感谢您的回答。我唯一的想法是,Controller用于JSP请求,而MVC没有实例化它。然后它将无法找到匹配的模式。但我该怎么办呢?

1 个答案:

答案 0 :(得分:1)

您的dispatcher-servlet.xml没有放置给定行的mvc驱动的注释信息。

  <mvc:annotation-driven />  

请求映射将起始值设置为/

 @RequestMapping(value = "/test.htm", method = RequestMethod.GET)  

阅读spring-mvc的文档。它可以帮助你理解spring mvc http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html