zoukankan      html  css  js  c++  java
  • [Struts]学习日记3 在页面中显示条目列表

    开发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;
     }

    }


  • 相关阅读:
    XMPP Openfire集成windows身份认证
    WIF claimsbased identity
    VMWare Workstation使用总结几则
    把成熟的代码从.NET移植到Mono 【转】
    工作流jBPM使用总结
    C++实现的IO高效的算法TPIE
    XMPP的简介和基本概念
    NoSQL学习路线图 使用 NoSQL 数据库分析大规模数据[转]
    Spring Security 3 网站安全授权
    jBPM 5 的点滴
  • 原文地址:https://www.cnblogs.com/bjzhanghao/p/28074.html
Copyright © 2011-2022 走看看