正 文

利用 Geronimo 深入 EJB Web 应用程序


www.7dspace.com  更新日期:2005-10-29 4:39:55  七度空间


  在 清单 1 中,前几行设置将在页面中处于活动状态的标记库。它们还将站点模板的内容区域设置为内容将显示的位置。本例展示了一个简单的基于 Struts 的输入屏幕,它用一些 标记来显示资源库文件(位于 webapp/WEB-INF/classes/resources/application.properties)中的字符串。屏幕将名称和电话号码提交给名为 SaveEntry.do 的 Struts 动作。

  如果查看 清单 2 中 SaveEntry.java 源文件中的类 Javadoc 标记,将会看到该应用程序中 XDoclet 标记的第一个示例。这些标记定义生成 Struts 部署描述符 struts-config.xml 必需的所有属性。

  清单 2. SaveEntry.java Javadoc 类标记

/**
 * Save an Entry
 *
 * @struts.action
 *    name = "phoneBookEntryForm"
 *    path = "/pages/SaveEntry"
 *    scope = "request"
 *    input = "/pages/EditPhoneNumberPage.jsp"
 *    unknown = "false"
 *    validate = "false"
 * @struts.action-forward
 *    name = "success"
 *    path = "/pages/ListNumbers.do"
 *    redirect = "true"
 */

  该示例代码位于一个 nutshell 中,展示了 /pages/SaveEntry 动作从 EditPhoneNumberPage.jsp 中获取输入,并使用 phoneBookEntryForm 将来自页面的用户输入打包到 Java 代码中。该动作完成之后,它重定向到 /pages/ListNumbers 动作以显示号码列表。

  ListNumbers 动作位于 ListNumbers.java 文件中,它使用 清单 3 中的代码调用名为 PhoneBookSession 的 Session EJB。

  清单 3. ListNumbers 动作的 execute() 方法的代码段

PhoneBookSessionLocal session =
      PhoneBookSessionUtil.getLocalHome().create();

// Call the method
Collection c = session.listEntries();

// Put the retrieved information into the request attributes
// so the page can render them.
request.setAttribute("numbers", c);

  在 清单 3 中,可以看到 PhoneBookSessionUtil 类的使用。它是一个 XDoclet 生成的类,用于帮助获得 PhoneBookSession 对象的主接口。创建了一个会话,调用了它的 listEntries() 方法,该方法返回所有电话簿条目的集合。然后请求对象中的 numbers 属性被设置为该集合。这样做的效果是将电话号码放到指定位置,以便用于显示条目的 JSP 可以检索并写出列表,如 清单 4 所示。

  清单 4. ListPhoneNumbersPage.jsp 中的 DisplayTag

<display:table name="numbers" requestURI="ListNumbers.do"
    scope="request" pagesize="5" id="row_obj">
    <display:column property="name" title="Name"/>
    <display:column property="phoneNumber" title="Phone"/>
    <display:column title="Actions">
         <logic:present name="row_obj">
              <html:link action="/pages/EditEntry"
                    paramId="id" paramName="row_obj"
                    paramProperty="name">Edit</html:link>
              <html:link action="/pages/DeleteEntry"
                    paramId="id" paramName="row_obj"
                    paramProperty="name"
                    onclick="return confirmDelete('Number')">
                    Delete
              </html:link>
         </logic:present>
    </display:column>
...
</display:table>

8页,页码:[1] [2] [3] [4] [5] [6] [7] [8] 

上一篇:在.NET中创建应用程序
下一篇:Windows环境下服务器监控软件的选择
作者:Neal Sanche  来源:developerWorks 中国 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐