2011-07-01 29 views
5

tôi đọc ở đâu đó (không tìm thấy nó nữa) mà tôi có thể sử dụng EL Expresions trong gói tài nguyên và sau đó sử dụng nó mà không thay đổi tệp * .xhtml.Biến EL trong JSF ResourceBundle

some.text=#{someBean.stepsLeft} more 

để chuyển vị trí của biến bằng các ngôn ngữ khác nhau. Nhưng thực sự nó sẽ không hoạt động. Tôi có thể sử dụng lớp Interpolator để xử lý việc phân tích cú pháp hoặc thêm some.text.before some.text.after và để trống một trong số chúng. Tôi muốn nó sử dụng nó mà không có interpolator.interpolate() nếu có thể.

Trả lời

9

Các tài nguyên JSF theo mặc định không giải quyết được EL. Tuy nhiên theo mặc định, nó hỗ trợ MessageFormat API kết hợp với <h:outputFormat><f:param>.

some.text = {0} more 

với

<h:outputFormat value="#{i18n['some.text']}"> 
    <f:param value="#{someBean.stepsLeft}" /> 
</h:outputFormat> 

Bạn thậm chí có một cách rõ ràng có thể làm cho nó một loại number nên ví dụ mà 1000 sẽ được hiển thị là 1,000 hoặc 1.000 tùy thuộc vào ngôn ngữ chế độ xem.

some.text = {0,number} more 

Để biết thêm tùy chọn định dạng, hãy xem MessageFormat API documentation.

+6

nhanh nhất có thể. Cám ơn bạn một lần nữa. JSF stackoverflow sẽ là gì nếu không có bạn;) – webstrap

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