我将用户信息存储到会话bean中,如下所示:
@Component
@Scope( value="session" , proxyMode = ScopedProxyMode.TARGET_CLASS )
public class UserInfos {
public List<Integer> roles;
public Integer idUser;
public List<Integer> getRoles() {
return roles;
}
public void setRoles(List<Integer> roles) {
this.roles = roles;
}
public Integer getIdUser() {
return idUser;
}
public void setIdUser(Integer idUser) {
this.idUser = idUser;
}
}
在我的控制器中,我将bean作为属性放在会话中:
@Controller
public class FooController {
@Autowired
private UserInfos userInfos;
@RequestMapping(value="/foo/login")
public String login_foo(HttpServletRequest request){
....
userInfos.idUser = ...
userInfos.roles = ...
request.getSession().setAttribute( "userInfos", userInfos );
....
}
}
但是,当我尝试在jsp
页面中使用它时,${ sessionScope.userInfos.idUser }
的值始终为null
。
当我尝试
时(${ sessionScope.userInfos }) - (${ sessionScope.userInfos.idUser })
我明白了:
(beans.UserInfos@445541fc) - ()
那么如何在JSP页面中使用会话bean的属性呢?
因为当我在我的控制器中调试时,userInfos.idUser
的值不为空或空。
答案 0 :(得分:0)
我们通过替换:
来解决它 userInfos.idUser = ...
userInfos.roles = ...
通过:
userInfos.setIdUser( ... );
userInfos.setRoles( ... );
如果有人能解释我为什么设置属性,那将非常有用。