Structs 學(xué)習(xí)筆記
一、Web.xml文件的基本配置
第一步:配置ActionServlet
actionorg.appache.structs.ActionServlet
action
*.do
注意:不管應(yīng)用中包含多少個子應(yīng)用,都只需配置一個ActionServlet,因?yàn)锳ctionServlet支持多線程,目前的Structs框架只允許在應(yīng)用中配置一個ActionServlet。
第二步:初始化參數(shù)對Servlet的運(yùn)行環(huán)境進(jìn)行初始化配置
action
org.appache.structs.ActionServlet
config
/WEB-INF/structs-config.xml
Struts1.1中用到的初始化參數(shù)如下:
參數(shù)名 含義/默認(rèn)值
config 以相對路徑的方式指明Struts應(yīng)用程序的配置文件位置。如不設(shè)
置,則默認(rèn)值為/WEB-INF/struts-config.xml。
config/sub1 以相對路徑的方式指明子應(yīng)用程序的配置文件位置,一般來說,
很少用到子應(yīng)用程序,在此不多描述。
debug 設(shè)置Servlet的debug級別,控制日志記錄的詳細(xì)程度。默認(rèn)為0,
記錄相對最少的日志信息。
detail 設(shè)置Digester的debug級別,Digester是Struts框架所使用的用
來解析xml配置文件的一個框架,通過該設(shè)置,可以查看不同詳細(xì)等級的解析日志。默認(rèn)為0,記錄相對最少的日志信息。
第三步:配置歡迎清單
當(dāng)客戶訪問Web應(yīng)用時,如果僅僅給出Web應(yīng)用的Root URL,沒用指定具體的文件名,Web容器會自動調(diào)用Web應(yīng)用的歡迎文件。
welcome.jsp
index.jsp
說明:可以包含多個子元素,首先查找第一個文件。
由于元素中不能配置Servlet映射,因此不能直接把Structs的Action作為歡迎文件,可以采用一種變通的方法來實(shí)現(xiàn)在歡迎文件中調(diào)用Structs Action。首先,在Structs配置文件中為被調(diào)用的Action創(chuàng)建一個全局的轉(zhuǎn)發(fā)項(xiàng),例如:
創(chuàng)建一個welcome.jsp的文件
最后在web.xml文件中把welcome.jsp文件配置為歡迎文件,代碼如下:
welcome.jsp
在welcome.jsp中的代碼如下:
第四步:配置錯誤處理
404
/commom/404.jsp
505
/commom/505.jsp
也可以為Web容器捕獲的Java異常配置,需要設(shè)置子元素,它用于指定Java異常類。Web容器可能捕獲如下異常:
RuntimeException或Error ServletException或它的子類 IOException或它的子類
java.io.IOException
/common/system_ioerror.jsp
第五步:配置Structs標(biāo)簽庫
使用客戶化的標(biāo)簽庫,要配置它們
/WEB-INF/structs-html.tld
/WEB-INF/structs-html.tld
用于指定標(biāo)簽庫的相對或者絕對URI地址,Web應(yīng)用根據(jù)這一URI來訪問標(biāo)簽庫。指定標(biāo)簽描述文件在文件資源系統(tǒng)中的物理位置。
二、Struts-config.xml配置文件
Struts的核心是struts-config.xml配置文件,在這個文件里描述了所有的Struts組件。
在這里包括配置主要的組件及次要的組件,下面是struts-config.xml包含主要元素的內(nèi)容:
1. struts-config.xml的主要元素:
注意:以上各元素的順序是非常重要的,你的struts-config.xml配置文件必須按照這個順序進(jìn)行配置,否則在你的容器啟動的時候就會出錯。
2. 配置JDBC數(shù)據(jù)源
其配置形式如下:
的屬性及其描述信息如下:
屬 性 描 述 信 息
Key 綁定在ServletContext上的DataSource實(shí)例的索引鍵, 若不設(shè)定則缺
省為Action.DATA_SOURCE_KEY,如果在應(yīng)用程序中有多于一個的
DataSource, 則必須設(shè)置Key的值。
DriverClass 所用的JDBC驅(qū)動類(必須的)如:
com.microsoft.jdbc.sqlserver.SQLServerDriver
url 所用的JDBC的URL(必須的)如:
jdbc:microsoft:sqlserver://xg088:1433
MaxCount 同時打開的最大連結(jié)數(shù),缺省值為2(可選的)
MinCount 同時打開的最小連結(jié)數(shù),缺省值為1(可選的)
User 連結(jié)到數(shù)據(jù)庫的用戶名(必須的)
Password 連結(jié)到數(shù)據(jù)庫的密碼(必須的)
Description 關(guān)于DataSource的描述信息(可選的)
ReadOnly 如果設(shè)為true,則表示該連結(jié)是只讀的,缺省為false。(可選的)
LoginTimeout 創(chuàng)建連結(jié)的最大允許時間,以秒為單位。(可選的)
AutoCommit 如果為true,則每次execute之后會強(qiáng)制回滾。缺省為true。(可選的)
舉例說明:
在代碼中獲取數(shù)據(jù)庫連接的方法為:
DataSource ds=this.getDataSource(request," WILEY_DATA_SOURCE ");
Connection con = ds.getConnection();
3. 配置FormBean
用來定義將要綁定到Action的FormBean的實(shí)例。語法如下:
例:
4. 配置全局轉(zhuǎn)發(fā)
全局轉(zhuǎn)發(fā)可以定義幾個子元素,struts首先會在元素中找對應(yīng)的,
若找不到,則到全局轉(zhuǎn)發(fā)配置中找。語法如下:
除了name及path屬性之外,還有一個redirect屬性,如果redirect設(shè)為true的時候,則用 HttpServletResponse.sendRedirect()方法,否則用RequestDispatcher.forward()方法,缺省為false。
注:如果為true,則用HttpServletResponse.sendRedirect()方法,此時存儲在原來的HttpServletRequest中的值將會丟失。
例子:
5. 配置
它可以定義幾個子元素,它主要是定義Action實(shí)例到ActionServlet類中,語法如下:
屬性及其描述信息如下:
屬 性 描 述 信 息
Path 在瀏覽器的URL中輸入的字符(必須的)
Type 連結(jié)到本映射的Action的全稱(可選的)
Name 與本操作關(guān)聯(lián)的Action Bean在中定義name名(可選的)
Scope 指定ActionForm Bean的作用域(session和request),缺省為session。(可選的)
Input 當(dāng)Bean發(fā)生t誤時返回的控制。(可選的)
ClassName 指定一個調(diào)用這個Action類的ActionMapping類的全名。缺省用
org.apache.struts.action.ActionMapping,(可選的)
Forward 指定處理相應(yīng)請求所對應(yīng)的JSP頁面。(可選的)
Include 如果沒有forward的時候,它起forward的作用。(可選的)
Validate 若為true,則會調(diào)用ActionForm的validate()方法,否則不調(diào)用,缺省為true。(可選的)
例子:
6. 配置RequestProcessor
在struts-config.xml文件中用子元素來定義RequestProcessor,其語法格式如下:
元素屬性及其描述信息如下:
屬 性 描 述
processorClass 指定自定義的RequestProcessor類的全名
BufferSize 指定用來下載所用的緩存大小。缺省是4096字節(jié)。
contentType 定義response文本類型,缺省是text/html
Debug 定義當(dāng)前系統(tǒng)的除錯級別,缺省是0
Locale 如果是true,則在用戶的session中存放Locale對象,缺省為true
maxFileSize 指定下載文件最大的大小。缺省是250M
multipartClass 指定去代替org.apache.struts.upload.DiskMultipartRequestHandler類的類的全名。
Nocache 如果是true,則會關(guān)閉每個response的緩存功能。缺省是false
TempDir 指定上載文件所用的臨時目錄。缺省值由容器決定
例子:
①
②
7. 配置Message Resources
在struts-config.xml文件中用元素來定義消息資源。其語法如下:
元素屬性及其描述信息如下:
屬 性 描 述
Parameter 給定資源文件全名
ClassName 定義處理消息資源的類名的全名,缺省是org.apache.struts.config.MessageResourcesConfig
Factory 定義MessageResourcesFactory類的全名,缺省是
org.apache.struts.util.property.MessageResourcesFacotry
Key 定義綁定在這個資源包中的ServletContext的屬性主鍵,缺省值是Action.MESSAGES_KEY.
Null 如果為true,則找不到消息key時,則返回null,缺省是true.
例子:
①
②
注意:設(shè)定key的目的如下:
這里說明要到StorefrontImageResources.properties資源文件中找主鍵值是”navbar.home.image”所對應(yīng)的值。
這里StorefrontImageResources.properties的內(nèi)容如下:
……
navbar.home.image=/images/home.gif
navbar.home.image.alt=Home
……
此處navbar.home.image.alt說明的和
一樣。