s:iterator 迭代不出数据

code386 2012-04-25 12:12:04
在action中调用方法list

public String list() {

wcList = inventoryManager.listWoodCategory();

Iterator it = wcList.iterator();
while (it.hasNext()) {
WoodCategory wc = (WoodCategory) it.next();
logger.warn(wc.getName());
}
logger.warn("list excuted!");

return SUCCESS;
}


可以打印出值。

2012-4-25 0:07:51 org.apache.catalina.core.StandardContext reload
信息: Reloading Context with name [/hongmu] is completed
18858 [http-bio-8080-exec-36] WARN com.wxh.action.WoodCategoryAction - reeerer
18858 [http-bio-8080-exec-36] WARN com.wxh.action.WoodCategoryAction - 不需要
18858 [http-bio-8080-exec-36] WARN com.wxh.action.WoodCategoryAction - 我
18858 [http-bio-8080-exec-36] WARN com.wxh.action.WoodCategoryAction - 8
18858 [http-bio-8080-exec-36] WARN com.wxh.action.WoodCategoryAction - rtrtrtrt454
18858 [http-bio-8080-exec-36] WARN com.wxh.action.WoodCategoryAction - rt
18858 [http-bio-8080-exec-36] WARN com.wxh.action.WoodCategoryAction - list excuted!
25013 [http-bio-8080-exec-33] WARN com.wxh.service.impl.InventoryManagerImpl - 保存木材种类成功


在jsp页面中显示不出值

jsp代码是这样写的:
<table>
<tr>
<th>Name</th>

</tr>
<s:iterator value="wcList">
<tr>

<td><s:property value="name" /></td>

</tr>
</s:iterator>
</table>


求助:s:iterator代码应该如何写才能迭代出值?
...全文
426 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
在路上_等你 2012-04-26
  • 打赏
  • 举报
回复
你的wcList是在action 上面定义 也就是说在放在了值栈中 在页面用Struts2标签是可以直接拿出来的
可以 用<s:debug></s:debug>看一看

<s:iterator value="wcList" var="wc">
<tr>

<td><s:property value="#wc.name" /></td>

</tr>
</s:iterator>

edward4408 2012-04-25
  • 打赏
  • 举报
回复
<s:iterator value="wcList" var="list">
${list.name }
</s:iterator>
code386 2012-04-25
  • 打赏
  • 举报
回复
to xiaoxiaojunjie
package com.wxh.action;

import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

import com.wxh.model.WoodCategory;
import com.wxh.service.InventoryManager;

public class WoodCategoryAction extends ActionSupport implements
ModelDriven<WoodCategory> {
static final Logger logger = Logger.getLogger(WoodCategoryAction.class);

private WoodCategory woodCategory;
private InventoryManager inventoryManager;
private List<WoodCategory> wcList = new ArrayList<WoodCategory>();

@Override
public WoodCategory getModel() {
return woodCategory;
}

public String execute() {
return SUCCESS;
}

public void save() {
inventoryManager.save(woodCategory);
}

public String list() {

wcList = inventoryManager.listWoodCategory();

Iterator it = wcList.iterator();
while (it.hasNext()) {
WoodCategory wc = (WoodCategory) it.next();
logger.warn(wc.getName());
}
logger.warn("list excuted!");

return SUCCESS;
}

public WoodCategory getWoodCategory() {
return woodCategory;
}

public void setWoodCategory(WoodCategory woodCategory) {
this.woodCategory = woodCategory;
}

public InventoryManager getInventoryManager() {
return inventoryManager;
}

public void setInventoryManager(InventoryManager inventoryManager) {
this.inventoryManager = inventoryManager;
}

public List<WoodCategory> getWcList() {
return wcList;
}

public void setWcList(List<WoodCategory> wcList) {
this.wcList = wcList;
}

}
zjj911 2012-04-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

to xiaoxiaojunjie
action中get set方法都有,上加<s:debug> 标签后显示下面的东东,我还不清楚是什么,请再指点!

[Debug]
Name
ObjectProperty NameProperty Value
com.wxh.model.WoodCategory id -1
name null
com.wxh.action.WoodC……
[/Quote]
里面表示你wclist中是没有数据的,你肯定取不到了! 你action中代码我有问题! action代码贴出来!
code386 2012-04-25
  • 打赏
  • 举报
回复
to zhangqh2012
加了id后也显示不出来,wclist有Getter方法
code386 2012-04-25
  • 打赏
  • 举报
回复
to xiaoxiaojunjie
action中get set方法都有,上加<s:debug> 标签后显示下面的东东,我还不清楚是什么,请再指点!

[Debug]
Name
Object Property Name Property Value
com.wxh.model.WoodCategory id -1
name null
com.wxh.action.WoodCategoryAction texts null
model com.wxh.model.WoodCategory@43a30706
actionErrors []
errors {}
wcList []
fieldErrors {}
errorMessages []
woodCategory com.wxh.model.WoodCategory@43a30706
inventoryManager com.wxh.service.impl.InventoryManagerImpl@66ef7d74
container There is no read method for container
locale en_US
actionMessages []
com.opensymphony.xwork2.DefaultTextProvider texts null
碧玉笙 2012-04-25
  • 打赏
  • 举报
回复
检查下有没有get和set方法。
zjj911 2012-04-25
  • 打赏
  • 举报
回复
楼主你的action中没有get set方法吧! 那样就无法在堆栈中注入数据! 如果有的话!你在页面上加<s:debug> 标签看看里面有没有数据,有就是你取的不对,没有就是你没注入既get. set没有!
zhangqh2012 2012-04-25
  • 打赏
  • 举报
回复
<s:iterator value="wcList" id="wc">
<tr>

<td><s:property value="name" /></td>

</tr>
</s:iterator>
加个id,并且要确认,该wclist有getter方法
code386 2012-04-25
  • 打赏
  • 举报
回复
to chenshuangwtt
按你了你方法,在页面上还是没有数据显示,请再看看!
  • 打赏
  • 举报
回复
你的wcList都没放入request中,而且struts2标签也写错了。。

request.setAttribute("wcList",wcList);



<s:iterator id="list" value="#request.wcList">
<s:property value="list.name"/>
</s:iterator>
在路上_等你 2012-04-25
  • 打赏
  • 举报
回复
<s:iterator value="#request.wcList" var="wc">
<tr>

<td><s:property value="#wc.name" /></td>

</tr>
</s:iterator>

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧