2012-01-20 16 views
6

Yani, benim şablonJSF ve Facelets'i kullanarak şablonumda bir dosya nasıl koşullu olarak dahil edilir?

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

Ne yapmak isteyen bazı kullanıcılar temel Altbilgiyi değiştirmektir bir footer.xhtml içeren farklı Altbilgi _ ???. Xhtml dosyaya terc.

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

ve Footer_001.xhtml yoksa, o zaman başka türlü dosyadan içeriği kullanın, bu etiketleri arasında içerik kullanalım:

Yani, böyle bir şey yapmak istiyorum .

Bunun biraz garip geldiğini biliyorum, ancak bu, varolan sitemi, tüm yerdeki değişiklikleri içermek zorunda kalmadan özelleştirme konusunda büyük bir sorunu çözecek. Ayrıca, dosyanın elden önce varolmayacağından emin değilim.

Herhangi bir düşünce?

cevap

4

EL'yi <ui:include src>'da kullanabilirsiniz.

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

#{user.prefs.footerId} döner null veya boş bir dize, sadece Footer.xhtml haline bulunulur.

+0

Ah, evet. Böyle bir şey yapmayı planlıyorum. Ancak sorun, src'nin Footer_001.xhtml gibi bir dosyaya dönüştüğü ve bu dosyanın mevcut olmadığı (henüz) olduğu için gelir. Böylece "default" Footer.xhtml'in içeriğini dahil etmek istiyorum. bu mantıklı mı? :) –

+1

Neden ilk etapta geçersiz altbilgi kimliğiniz var? Bu% 100 kullanıcı kontrollü giriş midir? (eğer öyleyse, bu durumda saldırı vektörleri hakkında bilgi sahibi misiniz?) Neden sadece son kullanıcılara mevcut altbilgi kimlikleri olan bir açılır pencere açılır? Her neyse, prefs yapıcısını veya bu altbilgi varsa belki de getter yöntemini kontrol edebilirsiniz. ExternalContext # getResource() 'ın' null' döndürüp döndürmediğini kontrol ederek yapabilirsiniz. Varsa, yerine 'null' döndür. – BalusC

+0

Teşekkürler. Bu harika çalıştı. Var olmayan bir dosyayı dahil etmeye çalışmak için biraz garip olduğunu biliyorum ama bazı aptalca ihtiyaçlarımız var. Her neyse, öneriniz bizi bir çözüme doğru yönlendiriyor. Teşekkür ederim! –

İlgili konular