2015-01-21 39 views
0

继春季引导工作的代码1.1.10(春季4.0.8),但不是在1.2.1(春季4.1.4)RedirectView的不承认@RequestParam于Spring 4.1

DefaultController.java

@Controller 
@RequestMapping(value = "/") 
public class DefaultController { 

    @RequestMapping(method= RequestMethod.GET) 
    public RedirectView show(Map<String, Object> model) throws MissingServletRequestParameterException { 
     model.put("req", "expected"); 
     return new RedirectView("redirect"); 
    } 
} 

RedirectController.java

@Controller 
@RequestMapping(value = "/redirect") 
public class RedirectController { 
    private static final Logger logger = LoggerFactory.getLogger(RedirectController.class); 

    @RequestMapping(method= RequestMethod.GET) 
    public String show(@RequestParam("req") String req) throws MissingServletRequestParameterException { 
     logger.info("parameter is {}", req); 
     return "/redirect"; 
    } 
} 

依赖于的build.gradle是以下内容:

dependencies { 
    compile 'org.springframework.boot:spring-boot-starter-thymeleaf:' + version + '.RELEASE' 
    compile 'org.springframework.boot:spring-boot-starter-security:' + version + '.RELEASE' 
} 

集版本为“1.1.10”它工作正常,但是当设置为“1.2.1”,会出现一个错误信息:

Wed Jan 21 16:13:45 JST 2015 
There was an unexpected error (type=Bad Request, status=400). 
Required String parameter 'req' is not present 

如何使用RedirectView的与弹簧参数4.1.4?

感谢,

回答

1

您可以使用RedirectAttributes在DefaultController方法是这样的:

@RequestMapping(method= RequestMethod.GET) 
public RedirectView show(Map<String, Object> model, RedirectAttributes redirectAttributes) throws MissingServletRequestParameterException { 
    redirectAttributes.addAttribute("req","foo"); 
    return new RedirectView("redirect"); 
} 
+0

这工作!谢谢您的回答! – 2015-01-21 09:11:50