Struts2标签获取session对象

石岩 发布于 2013/04/14 19:13
阅读 4K+
收藏 1

我在Jsp中利用Struts2的标签获取session对象并输出来,以下代码是这样的:

<s:iterator value="#session.menusList" var="menus">
      <s:property value="#menus.name"/>
   </s:iterator>
在Action中的代码是这样的:

public String homes(){
    ActionContext.getContext().getSession().put("menusList", loadService.loadFindMenus());
    ServletActionContext.getRequest().setAttribute("aboutList", loadService.loadFindAbout());
    ServletActionContext.getRequest().setAttribute("proList", loadService.loadFindProduct());
    ServletActionContext.getRequest().setAttribute("parList", loadService.loadFindPartners());
    ServletActionContext.getRequest().setAttribute("newsList", loadService.loadFindNews());
    return SUCCESS;
}
说明:因为加载首页,所以在在多个项的内容显示,所以在些方法中,获取了多个List<?,?>对象,然后将其放置到session中,在由jsp中的Struts2标签获取输出。

加载中
0
loyal
loyal
那你直接 <s:iterator value="menusList" var="menus">呢?里面随便写点,看看到底循环没..或者直接打印下.
石岩
石岩
<s:iterator value="menusList" var="menus"> sdfasfs </s:iterator> 上面的“sdfasfs”是可以循环输出的。但是应用: <s:property value="#menus['name']"/> 获取值时就无法得到。
0
石岩
石岩

不行,那样更无法获得session数据。

 

0
小鑫o
小鑫o

那你用debug标签看下呢,看看数据到底在不在session中。

<s:debug></s:debug>

小鑫o
小鑫o
回复 @石岩 : 有试过换个名字么。不用menus,要不你就在循环中加debug看看menus到底是什么
石岩
石岩
<s:iterator value="menusList" var="menus"> sdfasfs </s:iterator> 上面的“sdfasfs”是可以循环输出的。但是应用: <s:property value="#menus['name']"/> 获取值时就无法得到。
0
小猫王
小猫王
页面获取不到session里的List对象?
石岩
石岩
<s:iterator value="menusList" var="menus"> sdfasfs </s:iterator> 上面的“sdfasfs”是可以循环输出的。但是应用: <s:property value="#menus['name']"/> 获取值时就无法得到。
0
loyal
loyal
你里面到底是什么对象?
loyal
loyal
回复 @石岩 : 那你就应该menus.name如果menus是map的话才[name]
石岩
石岩
List<Menus>对象
0
k
kongbei

我今天遇到了和楼主同样的问题,调试了一个多小时,确定了后台成功把数据存到session中了,用<s:debug></s:debug>确定了session已经有我存进去的那个对象了,但是就是在页面中不显示,我原来的代码如下:

<s:iterator value="#session.leagueInfo" var="leagueInfo">
     <div class="adtitle"><s:property value="#leagueInfo.content"/></div>
</s:iterator>

后来我将"adtitle"改成了"datitle"就成功显示了,因为在firefox和chrome中屏蔽了带有"ad"字眼的一些东西

希望对你有所帮助

0
石岩
石岩

谢谢。

返回顶部
顶部