Struts2框架第二講

一、細說常量配置

A)配置:常量可以在struts.xmlstruts.properties中配置,建議在struts.xml中配置,兩種配置方式如下:

struts.xml文件中配置常量

<struts>

    <constant name="struts.action.extension" value="do"/>

</struts>

struts.properties中配置常量

struts.action.extension=do

B)Struts2文件加載順序:

struts-default.xml struts-plugin.xml struts.xml struts.properties Web.xml

如果在多個文件中配置了同一個常量,則後一個文件中配置的常量值會覆蓋前面文件中配置的常量值.

C)常用常量簡介:

struts.i18n.encoding 指定默認編碼集,作用於HttpServletRequestsetCharacterEncoding方法 和freemarker velocity的輸出

Struts.action.extension 該屬性指定需要Struts 2處理的請求後綴,該屬性的默認值是action,即所有匹配*.action的請求都由Struts2處理。 如果用戶需要指定多個請求後綴,則多個後綴之間以英文逗號(,)隔開

struts.serve.static.browserCache 設置瀏覽器是否緩存靜態內容,默認值爲true(生產環境下使用),開發階段最好關閉

Struts.configuration.xml.reload struts的配置文件修改後,系統是否自動重新加載該文件,默認值爲false(生產環境下使用),開發階段最好打開

struts.devMode 開發模式下使用,這樣可以打印出更詳細的錯誤信息

struts.objectFactory spring集成時,指定由spring負責action對象的創建

struts.enable.DynamicMethodInvocation 該屬性設置Struts 2是否支持動態方法調用,該屬性的默認值是true。如果需要關閉動態方法調用,則可設置該屬性爲false

struts.multipart.maxSize 上傳文件的大小限制 默認是2M

二、在大部分應用裏,隨着應用規模的增加,系統中Action的數量也會大量增加,導致struts.xml配置文件變得非常臃腫。爲了避免struts.xml文件過於龐大、臃腫,提高struts.xml文件的可讀性,我們可以將一個struts.xml配置文件分解成多個配置文件

<include file="struts-user.xml"/>

<include file="struts-order.xml"/>

三、動態調用方法,指定一個action則可以調用不同的方法

首先我們需要在action標籤中設置name的時候用*號代表佔位符

<action name="helloworld_*" class="cn.csdn.action.HelloWorldAction" method="{1}">

<result name="success">/WEB-INF/page/hello.jsp</result>

</action>

這樣我們就可以用helloworld!add.action訪問 或者用hellworld_add.action訪問add的方法

四、接受請求參數

a) 接受基本的參數類型:Struts2內置的類型轉換來自動轉換

b) 複合類型接受請求參數

在其中定義實體類user的實例對象左右action的屬性並且指定了set方法

那就可以在form表單中使用user.id  user.name來指定name屬性。Struts2就可以將表單中的值賦給user這個對象並且封裝

四、類型轉換

a) 類型轉換器實現

使用這種方式也可以使用java類的封裝,一般分爲三步來實現

1、添加視圖界面。 在input中的name屬性指定成user即可

2、實現User封裝類

3、實現action類 封裝User類的實例屬性並且生出set方法

4、實現User類型轉換UserConverter類 繼承ognl.DefaultTypeConverter 

5、實現註冊,可以實現全局類型轉換器和局部類型轉換器  

a) 全局轉換器,配置xwork-conversion.properties 放在src目錄下在內容指定key-value值  爲 需要轉換的實體類的類名+包名  指定對應的converter的類名+包名

b) 局部轉換起  配置

指定action中的實體實例的屬性名和對應的converter的類名+包名

b) 自定義類型轉換

i. 將類型轉換器配置成全局級別只需要編寫一個xwork-conversion.properties文件。放在src目錄下。Key-value指定需要轉換的實體類與轉換器類內容如下:  java.util.Date=demo.converter.MyDateTypeConverter

ii. 可以繼承ognl.DefaultTypeConverter類。也可以繼承org.apache.struts2.util.StrutsTypeConverter這個類,實現兩個方法來實現 自定義轉換器

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章