我有一个Spring MVC(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获得解决方案。
谢谢!
答案 0 :(得分:2)
您可以在处理程序中声明HttpSession
或HttpServletRequest
作为参数,系统会自动通知它们。
public String myHandler(@RequestParam("id") String id, HttpServletRequest request) { ... }
处理程序有很多不同的参数和结果。你可以看到他们here。
答案 1 :(得分:2)
如果您不喜欢使用HttpSession并且想要使用Spring管理的东西,它也可以使用org.springframework.web.context.request.WebRequest:
public String myHandler(@RequestParam("id") String id, WebRequest request) {
request.getAttribute("name", SCOPE_REQUEST);
...
}
答案 2 :(得分:1)
如果你没有,你应该查看SessionAttributes上的this documentation,看看它是否适合你。