2012-04-23 21 views
5

Hành động Struts2 thường mở rộng ActionSupport lớp thực hiện giao diện TextProvider và cung cấp quyền truy cập vào tệp bó tài nguyên theo cách thuận tiện bằng phương pháp getText().Sử dụng bó tài nguyên trong bộ chặn đánh chặn Struts2

Tôi muốn sử dụng gói tài nguyên trong Bộ chặn. Tôi đoán tôi phải sao chép TextProvider triển khai và dán vào trình chặn của tôi.

tôi đã xác định tập tin trông cậy toàn cầu trong struts.xml

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

Và đặt global.properties trong resources gói.

Nó hoạt động tốt trong lớp học hành động

Có cách nào dễ dàng hơn để sử dụng gói tài nguyên trong bộ chặn không?

+0

và tại sao bạn muốn làm điều đó Interceptor không cho hành động cụ thể và họ không phải là thread an toàn không?. tôi không thấy lý do nào để làm điều này. –

+0

@UmeshAwasthi Interceptor không phải là chủ đề an toàn. Tôi đã không nhận thức được nó. Điều này thực sự đáng báo động. Cảm ơn –

+1

@Umesh Awasthi Điều gì sẽ xảy ra nếu bạn muốn hiển thị thông báo lỗi i18n cho người dùng và thông báo đó sẽ là khi trình chặn chặn đăng nhập thấy bạn không đăng nhập nữa? – user1884155

Trả lời

4

Bạn có thể sử dụng lớp java.util.ResourceBundle.

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

Tôi có một yêu cầu tương tự.Tôi đang tìm kiếm một cách để tôi có thể vượt qua một mảng các đối số có thể được thay thế trong văn bản tin nhắn. Tương tự như các phương thức của lớp DefaultTextProvider' của khung công tác Struts (xwork). – shabeena

4

Nếu hành động của bạn là loại ActionSupport bạn có thể làm như sau:

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

Đây là nó. Sau đó, từ một POJO nó là: 'ActionSupport actionSupport = (ActionSupport) ActionContext.getContext(). GetActionInvocation(). GetAction();' –

Các vấn đề liên quan