Model view controller springmvc-Session-Request
我有一个SpringMVC(3)控制器,我试图加入注释,但失败了。这是我的代码大纲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
@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会话相关的注释,但它们可能不适合您想要做的事情。