1.action標簽允許開發(fā)者在JSP頁面中直接調(diào)用action,該標簽有以下屬性: (1)executeResult:可選屬性,為一個Boolean類型值,用來指定是否顯示action的執(zhí)行結(jié)果,默認值為false,即不顯示。 (2)id:可選屬性,用來引用該action的標識。 (3)name:必填屬性,用來指定該action的實現(xiàn)類位置。 (4)namespace:可選屬性,用來指定該標簽調(diào)用的action所在的命名空間。 (5)ignoreContextParams:可選屬性,用來指定該頁面中的請求參數(shù)是否需要傳入調(diào)用的action,默認值為false,即將本頁面的請求參數(shù)傳入被調(diào)用的action。 2.Struts2頁面中需要顯示動態(tài)數(shù)據(jù)時,需要將這些數(shù)據(jù)在頁面文件外面獲取,然后通過某種方式傳到頁面中,因為要避免在JSP頁面中編寫Java代碼。比如需要從數(shù)據(jù)庫中讀取一系列數(shù)據(jù),我們一般要通過action來獲取這些數(shù)據(jù),然后讓頁面得到action中獲取的數(shù)據(jù)。 3.下面舉一個簡單的例子: 顯示數(shù)據(jù)庫中所有的書本信息 (1)書本的實體類為Book.java,反向表生成Hibernate實體類等過程這里不說。下面是Book.java的示例內(nèi)容: package entity; public class Book implements java.io.Serializable { private Integer bookId; public Integer getBookId() { public void setBookId(Integer bookId) { public String getBookName() { public void setBookName(String bookName) { public String getBookAuthor() { public void setBookAuthor(String bookAuthor) { } (2)查詢所有書本的方法,該方法所在的類為BookManage.java,其示例內(nèi)容如下: package dao; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; public class BookManage extends HibernateDaoSupport { @SuppressWarnings("unchecked") (3)創(chuàng)建一個action用來獲取所有書本信息,action為AllBookAction.java,其示例內(nèi)容如下: package com.xiaoqi.action; import javax.servlet.http.HttpServletRequest; import java.util.*; @SuppressWarnings("serial") private BookManage bookManage; public void setBookManage(BookManage bookManage) { public String execute(){ List<Book> allBook = bookManage.allBook(); return null; 在上述代碼中,將獲取的所有書本信息保存到了名為"allBook"的request對象中,并返回null,因為返回值在現(xiàn)在這種情況下沒有用。 (4)在struts.xml中,配置該action,內(nèi)容如下: <action name="allBookAction" class="AllBookAction"> (5)applicationContext.xml中配置該action,內(nèi)容如下: <bean id="bookManage" class="dao.BookManage" abstract="false" lazy-init="default" autowire="default" dependency-check="default"> <bean id="AllBookAction" class="com.xiaoqi.action.AllBookAction" > (6)最后看下顯示頁面book.jsp,其內(nèi)容如下: <%@ page language="java" pageEncoding="gb2312"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <body> 上述代碼中,先用<s:action name="allBookAction" executeResult="false"></s:action>訪問AllBookAction,記得executeResult值為false。然后在<s:iterator value="#request.allBook">中指明要循環(huán)哪個request對象所保存的List,這里要循環(huán)名為allBook的request對象所保存的List。通過<s:property value="bookName"/>直接輸出該request對象中所保存的List中的書本對象Book的bookName屬性值。 |