2013-10-08 17 views
7

Çeşitli Wicket panellerinin yeniden çizilmesini tetikleyen bir Ajax olayım var. Bazı panellerde onBeforeRender() yönteminin içinde kendi ek hesaplamaları vardır. Bir hata varsa, onu kullanıcıya göstermek istiyorum. Ancak, panelin içinde yeniden çizilmekte olan bir dosyaya erişemediğim için FeedbackPanel'i AjaxRequestTarget dosyasına ekleyemiyorum.AjaxRequestTarget, bir bileşenin Wicket's onBeforeRender() yönteminin içinden nasıl alınır?

AjaxRequestTarget öğesinin bir Wicket bileşeninin onBeforeRender() öğesini almanın bir yolu var mı? İlk olanlar zaten onBeforeRender() durumunda olduktan sonra Ajax hedefine ek bileşenler eklemek mümkün mü?

Sadece yeniden çizilmesi gereken paneller bir hata olup olmadığına karar verebilirse FeedbackPanel'i Ajax hedefine eklemenin daha iyi bir yolu var mı?

+1

Uygulamanızın ne yaptığını bilmiyorum, ama 'onBeforeRender()' daki iş mantığı hesaplamasından şüphe duyuyorum. –

+0

Wicket 1.4'de statik bir ['AjaxRequestTarget.get()'] (http://wicket.apache.org/apidocs/1.4/org/apache/wicket/ajax/AjaxRequestTarget.html#get()) yöntemi vardı (Wicket 6'da gitmiş gibi görünüyor). Ancak, Robert'in işaret ettiği gibi, doğrulama mantığı ve hata bildirimi hata bildirimi, onBeforeRender() 'de ele alınmamalıdır. –

cevap

10

AjaxTarget böyle yapılır Başlarken: Ben render aşamasında olduğum zamanlar

AjaxRequestTarget target = requestCycle.find(AjaxRequestTarget.class); 

Maalesef beklendiği gibi, ben hedefe bileşenleri ekleyemezsiniz. Ancak Wicket, onTargetRespond(AjaxRequestTarget target) yöntemiyle ITargetRespondListener arabirimini sağlar. Burada hedefe istediğim her şeyi ekleyebilirim.

+8

Gelecek okuyucular için. Daha az bağlam mevcut olduğunda: 'RequestCycle.get(). Find (AjaxRequestTarget.class)' –

+0

Nasıl Wicket versiyon 8'de edinebilirim? Bağımlılıkları sürüm 8'e güncellediğimde aynı şey değil, bir şeylerin yanlış olduğunu söylüyor, ancak belgelemede bulma yönteminin tanımı aynı. – tomurlh

İlgili konular