提问者:小点点

SpringMVC方法中的可选参数


我正在学习SpringMVC,并在Spring控制MVC3.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,重定向属性,区域设置,@Request estParam(value="file",必需=false)部分是可选的,但我想知道在哪里可以找到这些可选参数,以及在什么情况下它可以出现在方法中。


共1个答案

匿名用户

参数:

  • BindingResult-假设您有一个注册表单并且您将预先验证用户输入,然后您可以使用BindingResult
  • 模型-用户注册后,他想编辑自己的个人资料,他去了一个编辑站点,在这个站点上你会显示来自用户的数据。在这里你可以搜索用户并将用户对象添加到模型中,在模板中你可以从模型-属性中读取值。
  • HttpServletRequest提供请求信息。
  • @Request estParam(value="file",必需=false)from Spring:

带注释的参数,用于访问特定的Servlet请求参数。参数值转换为声明的方法参数类型

假设您有一个用户表,您将编辑其中一个,您选择一个条目,您可以在那里将userId作为请求参数发送。

还有一个类似的属性,它叫@PathVariable主要区别,@PathVariable是强制性的。@Request estParam分别是可选的,因为这存在一个“回退/默认值”。@PathVariable是url的一部分:

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

另外两个我还没有用过。