SORU
22 Ocak 2010, Cuma


commandLink//ajax fasulye aksiyon/dinleyici yöntemi çağrılan destek KomutDüğmesi

Bir <h:commandLink> <h:commandButton> kullanma sayfa, action actionlistener UICommand bileşen ile ilişkili vardır sorun sadece çağrılan değil buldum. Bunun olası nedenleri ve çözümleri nelerdir?

CEVAP
22 Ocak 2010, Cuma


Her bir UICommand bileşen başarısız çağırmak için ilgili Eylem yöntem ya da bir UIInput element başarısız güncelleme modeli değer, değil mi görmek görüp özel durumlar/uyarılar sunucu günlük, daha sonra şunları doğrulayın:

  1. UICommand UIInput bileşenleri UIForm bir bileşen içine yerleştirilmiş olmalıdır *örneğin 10* UICommand bileşenleri type="button" özniteliği olmalıdır. Ayrıca How to get h:inputText values from GUI (XHTML) into Java class (JSF bean) ve <h:commandButton> does not initiate a postback bkz.

  2. Birbirimizi yuva birden fazla UIForm bileşenleri olamaz. Bu HTML yasal değildir. Tarayıcı davranış belirsiz. Dosyaları vardır dikkat et! Paralel UIForm bileşenleri kullanabilirsiniz, ancak gönderme sırasında birbirlerine süreç vermiyorlar. Ayrıca Using multiple <h:form> in a JSF page bkz.

  3. UIInput değer hiçbir doğrulama/dönüştürme hatası oluştu. <h:messages> giriş özel <h:message> tüm bileşenleri tarafından gösterilen tüm iletileri göstermek için kullanabilirsiniz. Ajax istekleri de güncellenecektir, böylece varsa <f:ajax render> <h:messages> id eklemeyi unutma. Ayrıca bakınız 72**.

  4. UICommand UIInput bileşenleri içine yerleştirilmiş bir yineleme bileşeni gibi <h:dataTable>, <ui:repeat>, vb, ihtiyacınız emin olmak için tam olarak aynı value yineleme bileşenidir beri korunmuş sırasında uygulamak isteği değerleri faz şeklinde isteği gönder. AKSARAY özellikle üzerinde düğmesi tıklandığında bağlantı bulmak için kamuoyu ve giriş değerleri sunulmuştur. Görünüm kapsamı içinde fasulye koyarak ve ya fasulye @PostConstruct veri modeli (ve alıcı bir yöntem bu değil!) yük emin/ bunu düzeltmek gerekir. Ayrıca When should I load the collection from database for h:dataTable bkz.

  5. Bileşen ve ana bileşenler rendered öznitelik formu geçerli istek değerler faz isteği sırasında false değerlendirmek gerekir. AKSARAY özel olarak tahrif/hacked isteklerine karşı korumak bir parçası olarak kontrol eder. Bean @ViewScoped yapma ya düzgün @RequestScoped fasulye @PostConstruct durumu preinitializing olduğundan emin yapma bunu düzeltmek gerekir. Aynı uygulamadan talep değerleri aşamasında true değerlendirmek gerektiğini bileşeni, disabled öznitelik için geçerlidir. Ayrıca JSF CommandButton action not invoked bkz.

  6. UICommand bileşen UIForm bileşen onsubmit öznitelik onclick niteliği false geri dönüş olmamalı veya JavaScript bir hata neden. <h:commandLink> <f:ajax> durumunda da belge JS hata olmamalıdır. Son tarayıcılarda F12 JS web geliştirici araç konsolu almak için tuşuna basabilirsiniz. Tüm JS hataları orada kaydedilir. Genellikle tam bir hata iletisi googling zaten size cevap verecektir. Ayrıca Adding jQuery to PrimeFaces results in Uncaught TypeError over all place bkz.

  7. AKSARAY 2 kullanıyorsanız.x <f:ajax> komut bileşeni, <h:head> ana şablon yerine <head> sahip olduğunuzdan emin olun. Aksi AKSARAY otomatik eklemek mümkün olmayacak Ajax fonksiyonları içeren jsf.js JavaScript gerekli dosya. Bu "mojarra bağlamda" konsol JS. tanımlı değil gibi bir JavaScript hatası neden olur Ayrıca h:commandLink actionlistener is not invoked when used with f:ajax and ui:repeat bkz.

  8. Eğer bir ebeveyn <h:form> UICommand düğmesi önceden beri işlenen/güncelleştirilmiş bir ajax isteği gelen başka bir formda aynı sayfa, ilk eylem her zaman başarısız. İkinci ve sonraki eylemleri çalışacak. Bu görünüm durumu hata AKSARAY 2.3 JSF spec issue 790 ve şu anda sabit olması planlandığı bildirilen işlemesi nedeniyle oluşur. AKSARAY eski sürümleri için, açıkça <f:ajax> render <h:form> KİMLİĞİNİ belirtmek gerekir. Ayrıca h:commandButton/h:commandLink does not work on first click, works only on second click bkz.

  9. Eğer <h:form> 51* ayarlamak için destek dosya yükleyerek, ihtiyacınız emin olmak için kullanıyorsun en azından OLUMSUZLUK 2.2 veya sunucu uygulaması filtre kim sorumludur ayrıştırma parçalı/form-data istekleri düzgün yapılandırılmış, aksi takdirde FacesServlet sonunda elde hiçbir istek parametreleri ve böylece uygulayabilme isteği değerler. Böyle bir filtre yapılandırma dosya upload bileşeni kullanılıyor bağlıdır. Tomahawk için <t:inputFileUpload>, this answer kontrol ve PrimeFaces <p:fileUpload>, this answer kontrol edin. Ya, aslında hiç bir dosya karşıya iseniz, o zaman özniteliği tamamen kaldırmak.

  10. actionListener ActionEvent bağımsız javax.faces.event.ActionEvent ve en IDE sürüyor java.awt.event.ActionEvent 1 olarak böylece bir otomatik tamamlama seçeneği olduğundan emin olun.

  11. Emin ol hayır PhaseListener veya herhangi bir EventListener istek-tepki zinciri değiştirdi AKSARAY ömrü geçin çağırmak eylem aşaması için örnek arama FacesContext#renderResponse() FacesContext#responseComplete().

  12. İstek-yanıt aynı zincirde Filter veya Servlet isteği FacesServlet bir şekilde fo bloke olduğundan emin olun.

Benim bahis busenin özelliklesorun 2 neden olur:iç içe geçmiş formlar. Muhtemelen dosya içerir tamamladı Ana Sayfa <h:form> var. Kendisi gereken dosya vardırdeğil<h:form> var. Ayrıca tam tersi düzeltebilirsin, Ana Sayfa içermediğinden emin olmakdeğilDosya Ekle yeri etrafında <h:form> var.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ben Schoon

    Ben Schoon

    23 Kasım 2012
  • Cartoonium

    Cartoonium

    11 NİSAN 2011
  • Menglong Tav

    Menglong Tav

    18 Temmuz 2010