Model view controller springmvc-Session-Request

Model view controller springmvc-Session-Request,model-view-controller,spring,session,request,Model View Controller,Spring,Session,Request,我有一个SpringMVC(3)控制器,我试图加入注释,但失败了。这是我的代码大纲 @Controller public class SpringController { @RequestMapping("/welcome") public String myHandler(@RequestParam("id") String id) { //My RequestParm is able to do the job of request.getParamete

我有一个SpringMVC(3)控制器,我试图加入注释,但失败了。这是我的代码大纲

@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找到解决方案


谢谢

您可以将
HttpSession
HttpServletRequest
声明为处理程序中的参数,并将自动通知它们

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

处理程序有很多不同的参数和结果。你可以看到他们

如果您没有,您应该查看SessionAttributes,看看它是否适合您。

如果您不喜欢使用HttpSession,并且希望由Spring管理并且具有更多范围控制的内容,您可以使用org.springframework.web.context.request.WebRequest:

public String myHandler(@RequestParam("id") String id, WebRequest request) {
    request.getAttribute("name", SCOPE_REQUEST);
    ... 
}

伙计们,我的RequestParam有一个语法错误。它缺少一个“)”所以不要担心。谢谢你的回复。是的,我看到了,但我仍然无法理解如何使用注释从HttpServletRequest获取会话对象。如果有人能解释这一点,那就太好了!如果这样做,您不需要注释,为什么需要注释@SessionAttributes,如@Raghuram所说,@Scope(“session”)是与web会话相关的注释,但它们可能不适合您想要做的事情。