2012-04-23 12 views
5

Struts2 Eylemler, normal olarak TextProvider arabirimini uygulayan ActionSupport sınıfını genişletir ve getText() yöntemini kullanarak kaynak paket dosyalarına uygun bir şekilde erişim sağlar.Struts2 engelleyicilerindeki kaynak paketini kullanma

Interceptors'da kaynak paketini kullanmak istiyorum. Sanırım TextProvider uygulamasını kopyalamam ve onu benim önleyiciye yapıştırmam gerekiyor.

Zaten struts.xml

<constant name="struts.custom.i18n.resources" value="resources.global" /> 

küresel rücu dosyasını tanımlanan Ve resources pakette global.properties koyun var.

O Eylem Sınıflar

yılında çalışıyor önleyicilerin kaynak bundle kullanımı daha kolay bir yolu var mı?

+0

ve neden. Bunu yapmak için herhangi bir sebep görmüyorum. –

+0

@UmeshAwasthi Interceptor iş parçacığı güvenli değildir. Farkında değildim. Bu gerçekten endişe verici. Teşekkürler –

+1

@Umesh Awasthi Kullanıcıya bir i18n hata mesajı göstermek istiyorsanız ve giriş engelleyicisi artık giriş yapmadığınızı gördüğünüzde bu ileti ne olmalıdır? – user1884155

cevap

4

java.util.ResourceBundle sınıfını kullanabilirsiniz.

ResourceBundle bundle = ResourceBundle.getBundle("my_resource_name", locale); 
bundle.getString("resource_key"); 
+0

Benzer bir gereksinimi var.İleti metninde değiştirilebilecek bir dizi bağımsız değişkenleri iletebileceğim bir yol arıyorum.Böylece, Struts (xwork) framework'ün DefaultTextProvider sınıfı yöntemlerine benzer. – shabeena

4

eylem olarak yapabileceğiniz ActionSupport türü ise:? Bunu Interceptor yapmak istiyorum eylem özgü değil ve onlar parçacığı güvenli değildir

ActionSupport actionSupport = (ActionSupport)invocation.getAction(); 
actionSupport.getText("sample.key"); 
+1

İşte bu. Daha sonra POJO'dan: ActionSupport actionSupport = (ActionSupport) ActionContext.getContext(). GetActionInvocation(). GetAction(); ' –