什么改变了4.1.x和4.3.x之间的spring-mvc

时间:2016-08-02 12:40:55

标签: spring spring-mvc web

我今天使用Maven创建了一个spring-mvc项目, 当我使用版本4.1.5时,spring-mvc容器将param注入到处理程序(类中具有@Controller的方法)正确, 但是当我使用4.3.0版本时,spring-mvc容器不会向处理程序注入任何参数,例如HttpServeltRequestModel@RequestParam等等上。 我在两个版本之间使用了相同的配置文件,我只更改了pom.xml中的版本。

web.xml的内容如下:

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <servlet>
  <servlet-name>spring</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:conf/spring-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

和spring-servlet.xml的内容如下:

<mvc:annotation-driven />

<context:component-scan base-package="com.tydic.rmp.controller">
</context:component-scan>

最后,控制器的内容如下:

package com.tydic.rmp.controller;

import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class LoginController {
    @RequestMapping(value={"/login"})
    public String login(Model model, HttpServletRequest request) {
        model.addAttribute("hello", "111");
        System.out.println(request);
        return "login.jsp";
    }

    public LoginController() {
        System.out.println("========111111111111");
    }

}

0 个答案:

没有答案