我正在学习弹簧MVC并在弹簧控制器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,Model, HttpServletRequest,RedirectAttributes,Locale, @RequestParam(value =“file”,required = false)部分是可选的,但我想知道在哪里可以找到这些可选参数,在哪种情况下它可以出现在方法中。
答案 0 :(得分:0)
参数:
BindingResult
- 假设您有一个注册表单,并且您将预先验证用户输入,然后您可以使用BindingResult
。Model
- 用户注册后,他想编辑自己的个人资料,然后进入编辑网站,在此网站中,您将显示用户的数据。在这里,您可以搜索用户并将用户对象添加到模型中,在模板中,您可以阅读model
- attribute
中的值。HttpServletRequest
提供请求信息。@RequestParam(value="file", required=false)
:用于访问特定Servlet请求参数的带注释参数。参数值将转换为声明的方法参数类型
想象一下,您有一个用户表,您可以编辑其中一个,您可以选择一个条目,然后您可以将userId作为requestparam发送。
有一个类似的属性,它的主要区别是@PathVariable
,@PathVariable
是强制性的。 @RequestParam
分别是可选的,因为它存在"后备/默认值"。
@PathVariable
是网址的一部分:
@RequestMapping(value = "/{login}/edit", method = RequestMethod.GET)
public ModelAndView editUserByLogin(@PathVariable("login") final String login, final Principal principal) {}
另外两个我还没用过。