Struts 2会话属性不在jsp中显示

时间:2011-08-02 04:29:14

标签: session attributes struts2

我有一个Login页面的动作类,我在其中设置会话属性:

ActionContext context = ActionContext.getContext();
context.getSession().put(username, getUsername());

我可以通过Action类访问session属性:

System.out.println("Username from session: " + context.getSession().get(username).toString());

但是当我尝试通过随后显示的jsp访问相同的属性时,它不会显示任何内容:

Welcome <s:property value="#session['username']" />

只显示:

欢迎

请帮助您了解有关重新审核会话属性的正确语法。

2 个答案:

答案 0 :(得分:10)

<强>的LoginAction

ActionContext.getContext().getSession().put("username", getUsername());

<小时/> 获取用户名:

1)OtherAction

ActionContext.getContext().getSession().get("username");

2).jsp

<s:property value="#session['username']" />

<强>

${username}

  

更优先实施 SessionAware

     

另见:
  的 1。 How do we get access to the session
  的 2。 How do we get invalidate the session

答案 1 :(得分:1)

  

更优选实施SessionAware。

这肯定会让事情变得更容易。它允许您将struts动作类中的会话作为地图结构进行操作。

在jsp页面中,我通常会访问我的会话对象,如下所示:

<s:property value="%{#session.username}" />

或对于会话中的复杂对象,例如具有名称和密码的用户对象:

<s:property value="%{#session.user.username}" />
<s:property value="%{#session.user.password}" />