2010-03-01 23 views
7

'daki tümünün işaretini kaldıramıyorum Weblogic'te çalışan bir j2ee uygulamasına sahibim. Multibox'um ile kafam karıştı.Struts Multibox

Çok kutulu yazıcıdan tanıdığım, işaretli öğelerin gönderim sırasında bir dizi dizi olarak iletileceğidir.

Tek bir kutu işaretli kaldığı, ancak herşeyin işaretini kaldırdığımda, işaretli dizinin daha önce işaretlenmiş çoklu kutuların dizisi olduğu durumlarda, bir onay kutusunun işaretini kaldırdığımda veya uygulamada neden işaretlendiğimde uygulamamın neden iyi çalıştığını bilmiyorum Boş olması gerekiyordu.

Yardımcı olabilir misiniz?

cevap

14

ActionForm sınıfındaki reset() yöntemini biliyor musunuz?

Bu yöntemin kullanım amacı, onay kutularını sıfırlamaktır. Formunuzda işaretli bir onay kutusu varsa ve gönderdiyseniz, bu onay kutusu istek üzerine gönderilir. Onay kutusu işaretlenmemişse, istekte herhangi bir şey gönderilmez (GET gönderimi bu davranışı gözlemlemenin basit bir yoludur).

Struts istekleri gerçekleştirdiğinde, bu istekleri, istek formundaki parametrelerle eşleşir. Yani, eşleşecek bir şey varsa.

Şimdi aşağıdaki adımları göz önünde bulundurun: Ben ActionForm üzerinde bir boolean alanı var

  • ;
  • Ayrıca formda eşleşen bir onay kutusu var;
  • Formu gönderiyorum => Struts isteği bağlar, bu yüzden şimdi mülküm ActionForm'da doğrudur;
  • Formdaki onay kutusunu işaretleyin ve tekrar gönderin => onay kutusu için istekte hiçbir şey gönderilmiyor => Struts'un bağlayacağı hiçbir şey yok => ActionForm'da alanınız true;

Yukarıdakiler çoklu onay kutuları için geçerlidir, ancak yalnızca bir değer yerine bir dizi alırsınız.

Sıfırla() yöntemini girin. Bu, isteği bağlamadan önce Struts tarafından çağrılır. Burada alan değerinizi false olarak ayarlayabilirsiniz. İsteğinize gelirse Struts, bunun yerine gerçek => Tamam. İstek üzerine ulaşmazsa (işaretlenmediği için) değer yanlış olarak kalır => Tamam tekrar.

Aynısı, çoklu kartuşlar için de geçerlidir. Diziyi sıfır uzunluğuna (ancak boş olmayan) indirerek ActionForm'dan değerler listesini sıfırlamanız gerekir.

ActionForm'nuz bir istek kapsamı içeriyorsa, nesnenin her istekte yeniden oluşturulduğu için genellikle farketmez. Ancak onay kutuları ile ActionForm kapsamındaki bir oturum için, reset() şarttır.

İlgili konular