[Struts]学习日记3 - 在页面中显示条目列表

简介: 开发jsp/servlet最经常遇到的应用其中之一就是在页面上显示一个条目列表(例如用户列表、文章列表、商品列表等等),然后用户才好在浏览的基础上选择对某一个条目进行操作。现在就说一下怎样用struts实现这个功能。

开发jsp/servlet最经常遇到的应用其中之一就是在页面上显示一个条目列表(例如用户列表、文章列表、商品列表等等),然后用户才好在浏览的基础上选择对某一个条目进行操作。现在就说一下怎样用struts实现这个功能。

一般来说,用struts开发的应用是不应该直接访问.jsp文件的,而是由action转发请求,jsp只是显示action传来的数据用。所以即使这样简单的一个应用,也还是需要一个action的。

1、还是使用easy struts的向导,在菜单里选择File->New->Other,然后选择Easy Action这一项。这就打开一个向导窗口,该向导只有两步,比学习日记1里的少了创建form bean的那一步。

2、我们给要创建的action起名叫listItems好了,也就是说,在user case框里输入listItems。Type最好根据需要修改一下包名称。按下一步继续。

3、增加一个名为success的forward,path为/form/listItems.jsp。按finish按钮完成整个向导。

4、下面,首先编辑刚刚生成的ListItemsAction.java文件,修改execute方法如下:

 public ActionForward execute(
  ActionMapping mapping,
  ActionForm form,
  HttpServletRequest request,
  HttpServletResponse response)
  throws Exception {

  User user = new User();
  List items = new ArrayList();
  items.add(new Item("001", "Medicine"));
  items.add(new Item("002", "Ticket"));
  items.add(new Item("003", "Clothes"));
  user.setItems(items);
  request.getSession().setAttribute("user", user);

  return (mapping.findForward("success"));
 }

这里的User和Item都是我们自己写的类,一个User可以拥有多个items,Item具有id和name两个属性。具体代码见后。

5、接下来在/form下创建名为listItems.jsp的文件,内容如下:

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%> 
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> 
<html> 
 <head>
  <title>itemlist</title>
 </head>
 <body>
  <table>
  <logic:iterate name="user" property="items" id="item">
   <tr>
    <td><bean:write name="item" property="id" filter="true"/></td>
    <td><bean:write name="item" property="name" filter="true"/></td>
   </tr>
  </logic:iterate>
  </table>
 <body>
</html>

这里关键的就是<logic:iterate>这个标签,在这个例子中,它用来遍历session或request中key为user对应的对象的items属性,在遍历过程中可用item引用每个对象(<bean:write name="item">)。<bean:write>用于输出每个对象的不同属性,filter="true"表示把特殊字符进行转换,例如<转换为&lt;等等。

6、这样,就可以通过http://localhost:8080/struts-test/listItems.do看到一个条目列表了,如下所示:

001 Medicine
002 Ticket
003 Clothes

7、我们可以修改struts-config.xml文件,让用户登录成功后直接转向条目列表页面。只需要把原来logon action的名为success的forward的path由/form/main.htm改为/listItems.do就可以了。

附:

User.java代码:

public class User {
 
 private List items;
 
 public User(){
  items=new ArrayList();
 }
 
 public List getItems() {
  return items;
 }

 public void setItems(List list) {
  items = list;
 }

}

Item.java代码:

public class Item {
 
 private String id;
 private String name;

 public Item(String arg0, String arg1){
  id=arg0;
  name=arg1;
 }

 public String getId() {
  return id;
 }

 public String getName() {
  return name;
 }

 public void setId(String string) {
  id = string;
 }

 public void setName(String string) {
  name = string;
 }

}

本文转自博客园八进制的博客,原文链接:[Struts]学习日记3 - 在页面中显示条目列表,如需转载请自行联系原博主。

相关文章
|
前端开发
前端学习笔记202305学习笔记第二十二天-信息列表页实现2
前端学习笔记202305学习笔记第二十二天-信息列表页实现2
64 1
|
前端开发
前端学习笔记202305学习笔记第二十二天-信息列表页实现1
前端学习笔记202305学习笔记第二十二天-信息列表页实现1
65 0
|
前端开发
前端学习笔记202303学习笔记第五天-删除默认跳转行为
前端学习笔记202303学习笔记第五天-删除默认跳转行为
54 0
前端学习笔记202303学习笔记第五天-删除默认跳转行为
|
小程序 API
【小程序】案例 - 本地生活(列表页面)
【小程序】案例 - 本地生活(列表页面)
182 0
【小程序】案例 - 本地生活(列表页面)
|
Python
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)2
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)
102 0
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)2
|
数据库 Python
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)
178 0
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)
|
XML 数据格式
DEDE利用自由列表创建全站RSS订阅内容更新整站.xml文档
DEDE利用自由列表创建全站RSS订阅内容更新整站.xml文档 - 发表于:DEDE技术吧 - Dede教程 1.复制以下代码:(并且保存为rss.htm) {dede:global.
1157 0
|
Web App开发 PHP
DEDE后台栏目管理处直接显示未审核文档数的修改方法
后台未审核的文档很多,每次审核内容的时候都是打开 等审核的档案 来查看未审核的内容的. 但是列表是根据发布时间进行排序的,如果想每个栏目审核几篇文档,就要去栏目管理处挨个打开栏目文档列表,看看是否有未审核的内容.
1255 0