struts2基礎學習收錄重點之OGNL動態配置result , 使用註解配置action,實現java國際化

 rdirect結果類型和dispatcher結果類型的區別
testSuccess.jsp而dispatcher是導向到test.action
如果用戶再單機刷新按鈕。
redirect結果類型,仍然是testSuccess.jsp,用戶提交的信息不會被再次請求。
如果是test.action,用戶先前提交的信息將會再次提交,就會出現重複提交表單信息。



用戶註冊或則在線調查,當用戶在提交註冊或者調查信息時,服務器將導向到成功頁面。
 

使用OGNL動態配置result (動態配置結果映射)

使用通配符動態配置result時,<result>元素值爲{1}.jsp,這是根據URL參數來匹配的。如果根據action
中的屬性名稱進行動態配置,那麼就需要使用ORGL表達式。
實例:
·ORGLTest.jsp
·ORGLTest.jsp
·struts.xml
·xiaoxue.jsp


使用註解配置action


與action配置相關的註解
在struts2核心包org.apche.struts2.config包中,struts2框架定義了一些與action配置相關的註解類型,
這些註解類型如下:
·ParentPackage註解,用於指定action所在的包要繼承的父包。
參數 value 數據類型 String 不可選 無默認值     指定要繼承的父類

例如:
使用ParentPackage主角額,其value值爲defult-struts,表示所在的action需要繼承default-struts
包:@ParentPackage(value="default-struts")


·Namespace註解,用於指定action所屬於的命名空間
參數 value 數據類型 String 不可選 無默認值     指定action所屬的命名空間
例如:
使用Namespace註解,其value值爲/myspace,表示action屬於myspace命名空間:
@Namespace("/myapace")


·Result註解
Result註解,用於定義一個Result映射
Name String 可選 默認值爲Action.SUCCESS     指定result的邏輯名,即結果代碼
value String 不可選 無默認值             指定result對應資源的URL
type Class 可選 默認值爲NULLResult.class     指定result的類型
Param String[] 可選 默認值爲{}            爲result傳遞參數,格式爲{key1,value1,key2,value2}英文逗號
使用Result註解,定義返回結果的邏輯名字爲register,對應的結果資源URL爲/register.jsp;
param參數使用默認值,即{},表示返回結果不帶參數;type參數值爲默認結果類型:
packageaction;
@Result(name="register",value="/register.jsp",param={},type=ServletDispatcherResult.class)
public class Register{
    public String execute(){

        return SUCCESS;
    }
}

·Results註解 用於定義一組Result映射。
參數 value 數據類型Result[] 不可選 無默認值     爲action定義一組Result映射
package action;
@Results({
    @Result(name="login",value="/login.jsp"),
    @Result(name="register",value="/register.jsp",type=ServletDispatcherResult.class)

})
public class Register{
    public String execute(){
        
        return SUCCESS;
    }
}

使用註解的注意事項

(1)在web.xml中配置FilterDispatcher過濾器,爲該過濾器設置actionPackages參數,該參數指定
包含了action類的包的列表。
<init-param>
    <param-name>actionPackage</param-name>
    <param-value>com.qdu.libin.struts2.action</param>
</init-param>
(2)與action配置相關的4個註解都只能應用在類的級別上
(3)如果需要繼承struts-default包,則不需要使用ParentPackage註解
    struts2框架可以自動實現對struts-default包的繼承。


JAVA國際化

java對國際化的支持
使用java進行國際化時,主要使用如下3個類完成:
java.util.Locale 對應一個特定的區域和語言環境
Locale類主要用來構建本地化應用,該類主要包含對地理區域的區域性特徵的封裝。Locale類提供類一些
常量,可以使用這些語言環境創建Locale對象。例如,爲中國應用環境創建一個Locale 對象:
Locale.CN
·java.util.ResourseBundle    用於加載一個資源包。
Locale locale = new Locale("zh","CN","WIN");
ResourceBundle myResource= ResourceBundle.getBundle("Resources",locale);
·java.text.MessageFormat    用於將信息格式化


使用資源文件來實現java國際化
Locale類裏的getDefault()方法,獲取默認的本地信息
getBundle()方法    獲得locale對象的資源包信息


創建資源文件的方式:
在jdk的安裝目錄下,找到bin文件夾,有一個native2ascii.exe文件(創建工具)
在bin文件夾中創建記事本文件
temp.txt
內容:
userName=姓名
userPassword=密碼
在命令提示窗口中,首先進入到jdk的bin目錄下
執行:
native2ascii temp.txt MassagesResources_zh_CN.properties
表示使用native2ascii工具將temp.txt文件轉換爲MassagesResources_zh_CN.properties文件


使用資源類文件實現國際化


MessageFormat類
如果資源文件中包含動態內容,那麼動態內容需要使用佔位符表示,而加載資源時,必須使用MessageFormat
類,該類中有一個靜態方法format(),調用方式如下:
MessageFormat.format(String pattern,Object values,...)
其中,參數pattern是包含有佔位符的字符串,後面的多個參數,將以此填充pattern所代表的字符串的
佔位符。
實例:
·MessageFormat_zh_CN.properties
·MessageFormat_en_US.properties
·MessageFormatThree.java










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