在jsp页面中如何得到并迭代action中的集合?

Wackzzz 2017-01-09 12:05:23
这是action中的方法,我在断点中看了集合中是有值的:
public String findAll() {
List<Users> listAlls = dao.findAll();
if (listAlls != null & listAlls.size() > 0) {
return "userList";
} else {
return "userList";
}
}

下面的是jsp页面中的代码,在运行浏览器后不会报错,我在OGNL的debug中看了,没有得到list
<s:iterator var="i" value="listAll">
<tr>
<td height="23"><span class="STYLE1"><s:property value="i.{uid}" /></span>
</td>
<td><span class="STYLE1"> <s:property value="i.{uname}" /> </span>
</td>
<td><span class="STYLE1<s:property value="i.{ukey}" /></span>
</td>
<td><span class="STYLE1"> <s:property value="i.{ugender}" /> </span>
</td>
<td><span class="STYLE1"> <s:property value="i.{uage}" /></span>
</td>
<td><span class="STYLE1"><s:property value="i.{uphone}" /></span>
</td>
<td><span class="STYLE1"> <s:property value="i.{ulv}" /></span>
</td>
</tr>
</s:iterator>
如果是我迭代或者获取的方式有问题,请各位指点下!十分感谢!
因为今天刚刚学习到ONGL和Struts2标签,想用ONGL的”投影技术“,结果半天没弄好
...全文
156 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bcsflilong 2017-01-09
  • 打赏
  • 举报
回复
if (users != null) {
ses.put("user", users);
return "success";
} else {
String logingMsg = "用户帐号或密码错误!";
return "error";
}
根据这段话 可见你把取出来的集合(users)放到了的session中 名字叫user 那么 页面
<s:iterator  value="#session.user"  var="u">
<tr>
<td height="23"><span class="STYLE1"><s:property value="#u.uid" /></span>
</td>
<td><span class="STYLE1"> <s:property value="#u.uname" /> </span>
</td>
<td><span class="STYLE1"><s:property value="#u.ukey" /></a></span>
</td>
<td><span class="STYLE1"> <s:property value="#u.ugender" /> </span>
</td>
<td><span class="STYLE1"> <s:property value="#u.uage" /></span>
</td>
<td><span class="STYLE1"><s:property value="#u.uphone" /></span>
</td>
<td><span class="STYLE1"> <s:property value="#u.ulv" /></span>
</td>
</tr>
</s:iterator> 
Wackzzz 2017-01-09
  • 打赏
  • 举报
回复
我昨晚研究了一下,已经把action中的改好了,在jsp页面中的debug中也可以看到list在值栈中,可是就是迭代不出来,
老哥帮我看下我的jsp页面哪里有错误。。
public class UserAction extends ActionSupport implements RequestAware,
SessionAware, ModelDriven<Users> {
private Users user = new Users();

private UserDaoS dao = new UserDaoImplS();

private Map<String, Object> req;
private Map<String, Object> ses;

public Users getModel() {
return user;
}

private List<Users> users;

public List<Users> getList(){
return users;
}

public void setRequest(Map<String, Object> req) {
this.req = req;
}

public void setSession(Map<String, Object> ses) {
this.ses = ses;
}

public String login() {
Users users = dao.findByKey(user);
if (users != null) {
ses.put("user", users);
return "success";
} else {
String logingMsg = "用户帐号或密码错误!";
return "error";
}
}

public String findAll() {
users = dao.findAll();
if (users != null & users.size() > 0) {
return "userList";
} else {
return "userList";
}
}

下面的是jsp的代码
<s:iterator value="users">
<tr>
<td height="23"><span class="STYLE1"><s:property value="uid" /></span>
</td>
<td><span class="STYLE1"> <s:property value="uname" /> </span>
</td>
<td><span class="STYLE1"><s:property value="ukey" /></a></span>
</td>
<td><span class="STYLE1"> <s:property value="ugender" /> </span>
</td>
<td><span class="STYLE1"> <s:property value="uage" /></span>
</td>
<td><span class="STYLE1"><s:property value="uphone" /></span>
</td>
<td><span class="STYLE1"> <s:property value="ulv" /></span>
</td>
</tr>
</s:iterator>
  • 打赏
  • 举报
回复
楼上说的对,list要在action上下文中,并且要有get、set方法
bcsflilong 2017-01-09
  • 打赏
  • 举报
回复
首先 你的action中应该有代码将listAlls 放入action的上下文中 之后在页面 <s:iterator var="i" value="listAll"> var 需要写的是你 你放入上下文中那个list的名字 listAll 是迭代器名字 你可以贴出你的action 我帮你详细的修改

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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