我有一个带范围注释的简单控制器。
@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的解决方案?
答案 0 :(得分:1)
我不明白为什么你会感到惊讶。代码中{1}}中唯一的东西是HttpSession
bean。
仅仅因为该对象的字段类型为@Controller
,并不意味着User
中会有User
个属性。
结果为空。我也不想使用
HttpSession
的单个bean 不喜欢将User
的对象传递给控制器中的方法或 用于从中检索会话的HttpSession
对象。有没有 使用某些注释(HttpServletRequest
除外)传递的解决方案 从我的控制器对象jsp?
您基本上列出了所有选项。使用其中任何一个。