在Struts框架中,往往需要對資源文件進行配置,從而實現國際化的目的。
資源文件中允許使用靜態和動態文本。通過動態文本來動態的設定其顯示的內容,從而能更好的減少代碼的冗余,然而動態文本中的參數指定,是通過什么來實現的呢?
下面是ApplicationResources.properties資源文件中的內容:
通常我們可以在驗證框架的配置文件中來配置其動態參數的值,如:
但是具體的實現可以通過java.text.MessageFormat類來實現
最后輸出:zhangsan is the brother of lisi
資源文件中允許使用靜態和動態文本。通過動態文本來動態的設定其顯示的內容,從而能更好的減少代碼的冗余,然而動態文本中的參數指定,是通過什么來實現的呢?
下面是ApplicationResources.properties資源文件中的內容:
1?#?Resources?for?parameter?'com.kook.struts.ApplicationResources'
2?#?Project?P/ Demo_242103
3?
4?
5?
6?hello={0}?is?the?brother?of?{1 }
7?hello.brother= zhangsan
8?hello.person=lisi
2?#?Project?P/ Demo_242103
3?
4?
5?
6?hello={0}?is?the?brother?of?{1 }
7?hello.brother= zhangsan
8?hello.person=lisi
通常我們可以在驗證框架的配置文件中來配置其動態參數的值,如:
1?<field?property="name"?depends="required">
2?????????????????<arg0?name="required"?key="hello.brother"/>
3??</field>
2?????????????????<arg0?name="required"?key="hello.brother"/>
3??</field>
但是具體的實現可以通過java.text.MessageFormat類來實現
1???????MessageResources?messages?=
?getResources(request);
2?????????String?title?=?messages.getMessage("hello" );
3?????????String[]?arr?=?new?String[2 ];
4?????????arr[0]?=?messages.getMessage("hello.brother" );
5?????????arr[1]?=?messages.getMessage("hello.person" );
6?????????String?newMessage?= ?MessageFormat.format(title,?arr);
7?????????System.out.println(newMessage);
2?????????String?title?=?messages.getMessage("hello" );
3?????????String[]?arr?=?new?String[2 ];
4?????????arr[0]?=?messages.getMessage("hello.brother" );
5?????????arr[1]?=?messages.getMessage("hello.person" );
6?????????String?newMessage?= ?MessageFormat.format(title,?arr);
7?????????System.out.println(newMessage);
最后輸出:zhangsan is the brother of lisi
?
?