2010-08-02 11 views
5

Tôi muốn truy xuất thông tin thư từ gói i18n (messages.properties in seam), nhưng tôi không chắc cách chuyển/hủy biến jobCount động trong xhtml của tôiCách tự động chuyển đối số cho các thư trong gói tài nguyên

Mã hiện tại trông như thế này.

<s:decorate template="/layout/panel-name.xhtml"> 
    <ui:define name="label">User has been assigned #{jobCount} jobs</ui:define> 
</s:decorate> 

Trả lời

11

Tôi nghĩ rằng điều này sẽ làm việc:

<h:outputFormat value="#{msg.yourMessage}"> 
    <f:param value="#{myBean.jobCount}" /> 
</h:outputFormat> 
+0

Đó là thực sự là phương pháp tiêu chuẩn. – BalusC

2

tôi thấy đoạn mã này:

#{interpolator.interpolate(messages['myMessage'],jobCount)} 

Tôi nghĩ rằng đây là những gì bạn đang tìm kiếm. Messages and placeHolders

Nếu không, bạn có thể sử dụng dây nối (xấu xí) nếu đó là một thông điệp tĩnh:

<s:decorate template="/layout/panel-name.xhtml"> 
    <ui:define name="label">#{messages['myMessage']} #{jobCount}</ui:define> 
</s:decorate> 

Hoặc nếu đó là một thông điệp năng động và bạn đang sử dụng h: message

Sử dụng cú pháp này trong tính thông điệp:

MyMessage = người dùng đã được gán {1} việc

Và sau đó khi bạn tạo ra các tin nhắn trong đậu

@Name("myBean") 
public class Bean { 
    @In(create = true) FacesMessages facesMessages; 
    @In Map messages; 

    public String action() { 
     // Action here 
     facesMessages.add(messages.get("myMessage"), jobCount); 
    } 
} 
+0

sẽ cố gắng nó ra – Sam