java如何绑定JSP页面和控制器的会话范围字段?
我有一个带有范围注释的简单控制器
@Controller
@Scope("session")
@RequestMapping("/")
public class HelloController {
private User user = new User("Bob");
@RequestMapping(method = RequestMethod.GET)
public String printWelcome() {
return "hello";
}
}
和简单的jsp页面
<html>
<body>
<h1>Y=${sessionScope.user}</h1>
<h1>Z=${user}</h1>
</body>
</html>
但是当我试图运行这段代码时,我什么也得不到。结果是空的。我不想使用User
的单个bean,也不想将HttpSession
的对象传递给控制器中的方法或HttpServletRequest
对象以从中检索会话。使用一些注释(除了@SessionAttributes
)将对象从我的控制器传递到jsp有什么解决方案吗
# 1 楼答案
我不明白你为什么感到惊讶。代码中唯一在
HttpSession
中的是@Controller
bean仅仅因为该对象有一个类型为
User
的字段,并不意味着HttpSession
中会有一个User
属性你基本上已经列出了你所有的选择。使用其中任何一种