2009-02-11 27 views
7

Tôi đang cố gắng thực hiện một tinh chỉnh nhỏ trong môi trường Facelets/JSF. Tôi biết bên cạnh không có gì làm thế nào tất cả của nó phù hợp với nhau.Facelets: cách vượt qua một ui: chèn giá trị dưới dạng thuộc tính html?

Tôi có một giá trị xác định trên nhiều trang như "title"

<ui:define name="title">PageUID_123</ui:define> 

Trên trang khác tôi tham khảo này với:

<ui:insert name="title"/> 

tôi có thể quấn thẻ html xung quanh chèn tốt, nhưng tôi cần có khả năng xuất ra giá trị của "tiêu đề" như một thuộc tính của một phần tử khác. Mục tiêu cuối cùng của tôi là để nó hiển thị trong html như sau:

<meta name="pageid" content="PageUID_123"/> 

Nếu tôi thử đặt thẻ chèn vào nội dung = "", nó sẽ phát ra lỗi phân tích cú pháp. Có cách nào để làm việc này không?

Trả lời

6

Tôi không có một môi trường làm việc trước mặt tôi, nhưng tôi tin rằng bạn không muốn để bạn sử dụng <ui:define>, nhưng thay vào đó bạn muốn sử dụng <ui:param> và sau đó sử dụng ${x} hoặc #{x} (hay quên đó hoặc nếu nó vấn đề) để kéo chúng ra.

Vì vậy, đối với bạn ví dụ bạn sẽ phải:

<ui:param name="title" value="PageUID_123" /> 

Và sau đó:

<meta name="pageid" content="${title}"/> 

mối quan tâm duy nhất của tôi với điều đó là bạn đang sử dụng bao gồm có các mẫu đẹp, tức là

mẫu:

<html> 
    <head> 
     <meta name="pageid" content="${title}"/> 
    </head> 
    <body> 
     <ui:insert name="content" /> 
    </body> 
</html> 

trang Nội:

<html xmlns="...so many"> 
    <ui:param name="title" value="PageUID_123" /> 
    <ui:define name="content"> 
     <!-- content goes here --> 
    </ui:define> 
</html> 

Và tôi thực sự không biết nếu điều đó sẽ bay ...

Edit: Bạn có thể muốn thử ${title} hay #{title} chỉ cần cho đá theo cách bạn đang làm nó bây giờ, nó có thể chỉ cần làm việc.

+1

Trong facelets, việc sử dụng $ {x} hoặC# {x} không quan trọng. Chúng có ý nghĩa tương tự: https://facelets.dev.java.net/nonav/docs/dev/docbook.html#el –

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