2015-04-20 97 views
0

我学习Spring MVC和春天遇到这些methos contrller MVC 3.1可选参数

ControllerClass(){ 
    @RequestMapping(....) 
    public String show(Model uiModel) { 

    return "....."; 
} 

@RequestMapping(value = "/{id}", params = "form", method = RequestMethod.POST) 
public String update(@Valid Contact contact, BindingResult bindingResult, Model uiModel, 
     HttpServletRequest httpServletRequest, RedirectAttributes redirectAttributes, Locale locale, 
     @RequestParam(value="file", required=false) Part file) { 

    if (bindingResult.hasErrors()) { 
      ........... 
     return "....."; 
    } 

参数,如BindingResult,型号, 的HttpServletRequest,RedirectAttributes,语言环境, @RequestParam(值= “file”,required = false)部分是可选的,但我想知道哪里可以找到这些可选参数,以及在哪种情况下它可以出现在方法中。

+1

这很简单:你阅读文档,他们都被描述:http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc-ann-methods。 –

回答

0

参数:

  • BindingResult - 想象一下你有一个注册形式,你会预先验证用户的输入,那么你可以使用BindingResult
  • Model - 用户注册后,他想编辑自己的个人资料,他会去编辑网站,在这个网站,你会显示用户的数据。在这里您可以搜索用户并将用户对象添加到模型中,并在模板中可以从model - attribute中读取值。
  • HttpServletRequest提供请求信息。
  • @RequestParam(value="file", required=false)从春:

访问特定的Servlet请求参数标注的参数。将参数值转换为声明的方法参数类型

想象一下,您有一张用户表,并且您将编辑其中一个表,您可以选择一个条目并在那里发送userId作为requestparam。

还有一个类似的属性,它的主要区别是@PathVariable@PathVariable是强制性的。 @RequestParam是可选的,因为它存在“后备/默认值”。 的@PathVariable是从URL的一部分:

@RequestMapping(value = "/{login}/edit", method = RequestMethod.GET) 
    public ModelAndView editUserByLogin(@PathVariable("login") final String login, final Principal principal) {} 

我没有使用其他两个呢。