2011-09-08 11 views
9

w.r.t. meta ya da değil: How to execute action on GET request with f:viewParam?F: olayı f: metadata'sının mı yoksa değil mi?

<f:metadata> 
    <f:viewParam name="id" value="#{tInputBean.id}" /> 
    <f:event type="preRenderView" listener="#{tInputBean.init}" /> 
</f:metadata> 

Ben preRenderViewf:event f içine yerleştirilirse bu konularda olmadığını bilmek ilgileniyorum. Java EE6 öğreticisini, Java Server Faces 2.0 Complete Reference'ı ve Core JSF2'yi kontrol ettim ve bunların hiçbiri f: metadata içinde f: olayı örnekleri içermediler, ancak bunun gibi birçok çevrimiçi örneği gördüm.

JSF2 Compl.Ref diyor p.540

f: meta etiketi f bir çocuk bir Facelet görünümü için meta belirtmek için ve bu nedenle olmalıdır kullanılan elemanların kümesi kapsüller: etiketi görüntüleyin ve bir şablonda görünmeyebilir. JSF2.0'dan itibaren, bu etiketin tek amacı f: viewParam etiketlerini kapsüllemek içindir. meta özel anlama sahip yoksa sadece f yanında grup bunu yardımcı olmaktır: f içi: (viewParam genellikle f desteklemek için kullanılır) olayı:

f yerleştirerek mu viewParam görsel/mantıksal?

cevap

8

Hayır, <f:event><f:metadata> içine yerleştirilmesi kesinlikle gerekli değildir. Herhangi bir bileşene bağlanabilir. <f:viewParam> s bir demetiniz varsa ve <f:event> tüm bu görünüm parametrelerinin ayarlanmasından sonra bir eylemi çağırmak için çengel yapmak istediğinizde, <f:metadata> içine yerleştirilmiş saf belgesel amaçlıdır. Hatta bu <f:viewParam> s dışında yerleştirilebilir, ancak kodu daha kendinden belgeleyemez hale getirir.

Gelecek JSF 2.2'de, <f:metadata>'daki <f:event type="preRenderView">'u değiştirmesi beklenen yeni bir <f:viewAction> etiketinin ekleneceğini unutmayın.

+0

Teşekkürler BalusC. Bir f: olayının f: içindeki bir şablonun (sadece şablonun meta verileri) içerip içermediğini fark ettim. Http://stackoverflow.com/questions/11069484/jsf-fevent-prerenderview-in-template -fmetadata-dinleyici-not-varlık olarak adlandırılan-on-e –