2012-01-20 27 views
6

Vì vậy, mẫu của tôi bao gồm một footer.xhtmlLàm cách nào để có điều kiện bao gồm tệp trong mẫu của tôi bằng JSF và Facelets?

<ui:include src="/WEB-INF/testtaker/Footer.xhtml"/> 

Những gì tôi muốn làm là thay đổi chân dựa trên một số người dùng pref để Footer khác nhau _ ???. Tập tin xhtml.

Vì vậy, tôi muốn làm một cái gì đó như thế này:

<ui:include src="/WEB-INF/testtaker/Footer_001.xhtml"> 
     Content from original Footer.xhtml 
</ui:include> 

và nếu Footer_001.xhtml không tồn tại, sau đó cho phép nó sử dụng nội dung giữa các thẻ, nếu không sử dụng nội dung từ file .

Tôi biết điều này có vẻ hơi kỳ quặc, nhưng điều này sẽ giải quyết một vấn đề lớn khi tùy chỉnh trang web hiện tại của tôi với việc phải thực hiện thay đổi để bao gồm tất cả mọi nơi. Ngoài ra, tôi không chắc tệp này sẽ tồn tại trước khi bàn tay hay không.

Mọi suy nghĩ?

Trả lời

4

Bạn có thể sử dụng EL trong <ui:include src>.

<ui:include src="/WEB-INF/testtaker/Footer#{user.prefs.footerId}.xhtml" /> 

Nếu #{user.prefs.footerId} lợi nhuận null hoặc một chuỗi rỗng, nó sẽ trở thành chỉ Footer.xhtml.

+0

Ah, vâng. Tôi đang lên kế hoạch làm một việc như thế. Nhưng vấn đề đến khi src giải quyết một cái gì đó như Footer_001.xhtml và tập tin đó không tồn tại (chưa) vì vậy tôi muốn bao gồm nội dung "mặc định" của Footer.xhtml. Điều đó có ý nghĩa? :) –

+1

Tại sao bạn có ID chân trang không hợp lệ ở vị trí đầu tiên? Đây có phải là 100% đầu vào được kiểm soát bởi người dùng không? (nếu vậy, bạn có biết về các vectơ tấn công trong trường hợp này không?) Tại sao không chỉ cung cấp cho người dùng end dropdown với các ID chân trang có sẵn? Dù sao, bạn có thể kiểm tra trong các nhà xây dựng prefs hoặc có thể là phương pháp getter nếu chân đó tồn tại. Bạn có thể làm điều đó bằng cách kiểm tra nếu 'ExternalContext # getResource()' trả về 'null' hay không. Nếu nó không tồn tại, trả về 'null' để thay thế. – BalusC

+0

Cảm ơn. Điều đó làm việc tuyệt vời. Tôi biết có một chút kỳ lạ khi cố gắng đưa vào một tập tin không tồn tại nhưng chúng tôi có một số yêu cầu ngớ ngẩn. Dù sao, đề xuất của bạn dẫn chúng ta đi đúng hướng đến một giải pháp. Cảm ơn bạn! –

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