2015-04-20 2 views
0

Я учусь Spring MVC и встретить этих Митосе весной contrller MVC 3.1необязательный параметр в методе Spring MVC

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, Locale, @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) с весны:

аннотированные параметры для доступа к определенным параметрам запроса сервлета. Значения параметров преобразуются в заявленном методе аргумент типа

Представьте у вас есть таблица пользователей, и вы редактировали бы один из них, вы выбираете запись, и там вы можете отправить 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) {} 

Другие два я не использовал еще.

Смежные вопросы