Spring MVC - Сессия - Запрос - PullRequest
       7

Spring MVC - Сессия - Запрос

3 голосов
/ 15 октября 2010

У меня есть Spring MVC (3) Controller, и я пытаюсь вставить аннотации, но не смог. Вот мой набросок кода

@Controller
public class SpringController {

    @RequestMapping("/welcome")
    public String myHandler(@RequestParam("id") String id) {

        //My RequestParm is able to do the job of request.getParameter("id") 

        HttpSession session = request.getSession();
        session.setAttribute("name","Mike") ;
        return "myFirstJsp";
    }

   @RequestMapping("/process")
   public String processHandler(@RequestParam("processId") String processId) {

      //do stuff
      String someName = session.getAttribute("name");
      return "result";
   }

}

Просто ради объекта сеанса я должен объявить HttpServletRequest и HttpSession.Есть ли у нас в любом случае решение с @nnotations.

Спасибо!

Ответы [ 3 ]

2 голосов
/ 19 октября 2010

Если вам не нравится использование HttpSession и вы хотите что-то под управлением Spring, которое также имеет больший контроль области, вы можете использовать org.springframework.web.context.request.WebRequest:

public String myHandler(@RequestParam("id") String id, WebRequest request) {
    request.getAttribute("name", SCOPE_REQUEST);
    ... 
}
2 голосов
/ 15 октября 2010

Вы можете объявить HttpSession или HttpServletRequest в качестве аргументов в вашем обработчике, и они будут автоматически проинформированы.

public String myHandler(@RequestParam("id") String id, HttpServletRequest request) { ... }

Существует множество различных аргументов и результатов для обработчиков. Вы можете увидеть их здесь .

1 голос
/ 15 октября 2010

Если вы этого не сделали, вам следует посмотреть эту документацию в атрибутах SessionAttributes, чтобы узнать, применима ли она для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...