2012-03-08 24 views
6

Bir jsf girdi metnini salt okunur bir şekilde doğrulayabilmemin bir yolu var mı, ancak diğer bazı olaylar tetiklendiğinde değer değişti mi?jsf (richfaces) salt okunur metin doğrulama

+2

Wsn jsf sayfası destekleyici fasülyede bunu doğrulamak daha kolay değil mi? – Richie

+0

Ve doğrulama işlemini nasıl tetiklerim ve doğrulama iletisini nasıl gönderirim? –

+0

Yoruma cevap olarak bir cevap ekledim. Cheers – Richie

cevap

2

Bu sorunu bir çözümle çözdüm. Ben arayüzünde görünmez required niteliği true sahip bir inputHidden alanını eklemiş ama doğrulanır:

<h:inputHidden value="#{bean.value}" required="true" 
        requiredMessage="Data must be entered" /> 

bean.value değeri diğer olay değiştirilir ve bazı reRender de inputHidden, doğrulama gerçekleşir.

1

Büyük olasılıkla doğrulama işleminizi doğrudan olayınızdan manüel olarak çağırmanız gerekecektir. İşte IBM'in JSF yaşam döngüsünün bir modeli.

enter image description here

O Süreç Doğrulamaları faz etkinlikler, genellikle işlenir çağırır Uygulama safhasında önce gerçekleşir göreceksiniz. Bu iyi bir şekilde gerçekleşir, böylece doğrulama otomatik olarak gerçekleşmez.

2

Yorumdan yanıtlama: "Bunu, jsf sayfası destekleyici fasulyede doğrulamak daha kolay değil mi?" Bir düğme tıklatmasında veya benzer bir olayda uygulama düzeyinde doğrulama yapabilirsiniz. Sırtüstü fasulyenizde böyle bir şey yapabilir ve bunu etkinliğe bağlayabilirsiniz.

Bu yardımcı oldu umarım.

+0

JSF, 'readonly =" true "' girişinin model değerini güncellemez. Ayrıca, normal bir doğrulayıcıda bir eylem metodunun içinde validasyon yapmak zayıf bir uygulamadır. – BalusC

+0

@BalusC Bilgi için teşekkürler :) Giriş için readonly = "true" ayarının model değerini güncellemediğini bilmiyordum. Bir eylemde doğrulama yapmak için, uygulamanın en iyisi olmadığını biliyorum ama sanırım, salt okunur girdi için normal doğrulayıcıyı ekleyemeyebiliriz. – Richie

12

readonly özniteliğini, yalnızca yanıt verme aşamasında true olarak ayarlayın. Bu şekilde, diğer tüm fazlarda render yanıt aşamasından ziyade salt okunur olmayacaktır.

<h:inputText ... readonly="#{facesContext.currentPhaseId.ordinal eq 6}" /> 
+2

Benim örneğimde, HTML çizerken # (facesContext.renderResponse} # false'i döndürür (ortasına yazdırılmıştı). Her neyse, # {facesContext.currentPhaseId.ordinal eq 6} 'olarak çalışır. Mojarra 2.1.9. – SJuan76

İlgili konular