2015-03-18 2 views
1

У меня есть контроллер, который обслуживает разные запросы. Мне интересно, правильно ли я создаю ModelAndView? Я создаю один объект в каждом методе. Есть ли лучший подход?Можно ли создать объект modelandview в каждом методе класса?

@RequestMapping(method = RequestMethod.GET) 
public ModelAndView showNames() { 
    ... 
    ModelAndView model = new ModelAndView("names"); 
    model.addObject .... 
    return model; 
} 

@RequestMapping(value = "/name/{name}", method = RequestMethod.GET) 
public ModelAndView showNameDetails(@PathVariable String name) { 
    ... 
    ModelAndView model = new ModelAndView("name"); 
    model.addObject ... 
    return model; 
} 

@RequestMapping(value = "/name/{name}/{item}", method = RequestMethod.GET) 
public ModelAndView showItemsOfName(@PathVariable String name, 
     @PathVariable String item) { 
    ... 
    ModelAndView model = new ModelAndView("item"); 
    model.addObject .... 
    return model; 
} 

ответ

1

Вы можете попросить Spring ввести модель для вас, а затем вернуть имя вида из метода, например.

@RequestMapping(method = RequestMethod.GET) 
public String showNames(Model model) { 
    ... 
    model.addObject .... 
    return "names"; 
} 

@RequestMapping(value = "/name/{name}", method = RequestMethod.GET) 
public String showNameDetails(@PathVariable String name, Model model) { 
    ... 
    model.addObject ... 
    return "name"; 
} 

@RequestMapping(value = "/name/{name}/{item}", method = RequestMethod.GET) 
public String showItemsOfName(@PathVariable String name, 
     @PathVariable String item, Model model) { 
    ... 
    model.addObject .... 
    return "item"; 
} 

Это немного чище и меньше кода.

+1

он больше не принимает методы addObject! Импортированная библиотека - org.springframework.ui.Model; Полагаю, я должен заменить их на addAttribute правильно? – Jack

+1

Ах да. Правильно. – skaffman

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