您的位置:首页 > 其它

页面回显获取值栈对象属性

2016-01-22 11:35 344 查看
1.假设值栈栈顶对象是user(User user=new User("zhangsan"); ValueStack valueStack=ActionContext.getContext().getValueStack(); valueStack.push(user);)

在jsp页面想获取该user的name值,有以下两种方式:

<s:debug></s:debug>
<br>
<!--[0]表示栈顶对象,可以省略,[1]则表示栈顶对象下一个对象-->
用户名:<s:property value="[0].name" />
<br>
用户名:<s:property value="name" />


2.不要把得到的list对象放在栈顶,而是应该放在ActionContext中。

3.假设把list放在了session中(List<User> userList = new ArrayList<User>(); userList.add(new User("zhangsan")); userList.add(new User("lisi")); ServletActionContext.getRequest().getSession().setAttribute("userList",
userList);)

在jsp页面想获取该list的对象的name值,代码:

<s:debug></s:debug>
<s:if test="#session.userList!=null&&#session.userList.size>0">
<s:iterator value="#session.userList" id="user">
用户名:<s:property value="#user.name" />
<br>
</s:iterator>
</s:if>
<s:else>
出错
</s:else>


备注:iterator中id属性必需,指定遍历的元素

由于是session,所以在用iterator的value属性取集合时要加#session,在用property的value属性输出时也要加#。

s:if 的test属性是布尔表达式,对集合对象进行判断,关键在于正确的表示集合对象,保持同iterator的value属性一致即可。

4.假设把单个对象放在了session中(ServletActionContext.getRequest().getSession().setAttribute("user", new User("liuneng"));)

在jsp页面想获取该user的name值,代码:

<s:debug></s:debug>
用户名:<s:property value="#session.user.name" />

5.假设把list放到ActionContext中(List<User> userList = new ArrayList<User>(); userList.add(new User("zhangsan")); userList.add(new User("lisi")); ActionContext.getContext().put("userList", userList);)

在jsp页面中获取该list的对象的name值,代码:

<s:debug></s:debug>
<s:if test="#userList!=null&&#userList.size>0">
<s:iterator value="#userList">
<!--request可省-->
用户名:<s:property value="name" />
<br>
</s:iterator>
</s:if>
<s:else>
出错
</s:else>

备注: s:if 的test属性同上

actionContext.put(key,value)方法作用相当于request.setAttribute(key,value)方法。

6.假设把单个对象放到了ActionContext中(ActionContext.getContext().put("user", new User("zhangsan"));)

在jsp页面中获取该user对象的name值,代码:

<s:debug></s:debug>
用户名:<s:property value="#request.user.name" /><!--request不可省-->
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: