Как мне в spring mvc annotation-контроллере передать на страницу объекты, чтобы они были глобальными для всех методов. Т.е. если я передам на страницу через model объект в GET-методе, но в POST методе снова нужно передавать его. Есть способ сделать это единожды?
| Код | /** * AddQuestionaryController.java */ package web;
import idao.IQuestionaryDao;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod;
import validator.QuestionaryValidator; import beans.Questionary; import beans.User;
@Controller public class AddQuestionaryController {
@Autowired public IQuestionaryDao questionaryDao;
@ModelAttribute("questionary") public Questionary getQuestionObject() { return new Questionary(); }
@RequestMapping(value = "/questionaries/new", method = RequestMethod.GET) public String setupForm(Model model) { model.addAttribute("questionaries", questionaryDao.getAllObjects()); model.addAttribute("pagetitle", "Управление опросниками"); model.addAttribute("questionary", new Questionary()); return "questionaries/form"; }
@RequestMapping(method = RequestMethod.POST) public String processSubmit( @ModelAttribute("questionary") Questionary questionary, BindingResult result) {
new QuestionaryValidator().validate(questionary, result);
if (result.hasErrors()) return "questionaries/form";
User user = (User) SecurityContextHolder.getContext() .getAuthentication().getPrincipal();
questionary.getUsers().add(user);
questionaryDao.saveObject(questionary);
return "redirect:/questionaries/new"; }
@RequestMapping(value = "/questionaries/{questionaryId}/{action}", method = RequestMethod.GET) public String setupEditForm(@PathVariable("action") String action, @PathVariable("questionaryId") long questionaryId, Model model) { model.addAttribute("questionaries", questionaryDao.getAllObjects()); if (action.equals("delete")) { questionaryDao.deleteObject(questionaryId); return "redirect:/questionaries/new"; } Questionary questionary = questionaryDao.getObject(questionaryId); model.addAttribute("questionary", questionary); return "questionaries/form"; }
}
|
|