我试图在spring webflow中获取session属性,但它不起作用。在某些控制器中我有:
User u = userDao.getUser(userName);
session.setAttribute("sessionUser", u);
在JSP中,我可以得到它,并且它工作正常:
${sessionScope.sessionUser.getLogin()}
我试过这样的事情:
<decision-state id="isUserLogged">
<if test="sessionUser.getLogin() != null" then="startView" else="start" />
</decision-state>
但是我收到了错误:
EL1008E:(pos 0): Field or property 'sessionUser' cannot be found on object of type 'org.springframework.webflow.engine.impl.RequestControlContextImpl'
或
<decision-state id="isUserLogged">
<if test="${sessionScope.sessionUser.getLogin()}" then="startView" else="start" />
</decision-state>
错误:
EL1041E:(pos 1): After parsing a valid expression, there is still more data in the expression: 'lcurly({)'
我的第一个问题是,如何在网络流程中获得sessionUser
?
我也试过调用控制器方法,因为在控制器方法中我可以获得sessionUser
,但它不起作用。
我的第二个问题是,如何在webflow中调用控制器方法?
答案 0 :(得分:2)
Spring Web Flow中没有会话范围。要访问Session上的对象,您需要使用外部Context隐式el变量,如下所示:
<if test="externalContext.sessionMap.sessionUser.getLogin() != null" then="startView" else="start" />