2010-10-25 38 views
13

Doğrulama mantığımı şu şekilde uyguladım:JSF doğrulama istemci tarafı veya sunucu tarafı mı?

  <h:inputText id="title" value="#{...}" 
      required="true" requiredMessage="...some..text..." 
      validatorMessage="...some..other..text..." > 
      <f:validateLength minimum="10" maximum="50"/> 
     </h:inputText> 

İstemci ve sunucu doğrulama doğrulaması ve avantajları ve dezavantajları hakkında çok şey okudum. Ama yukarıdaki kodun ne olduğu hakkında hiçbir fikrim yok.

Birisi şunu açıklayabilir:

Cheers

cevap

29

lütfen açıklayabilir, bir istemci tarafı dili yardımıyla, ör giriş doğrular istemci (webbrowser) var JavaScript. Sunucu tarafı doğrulamasında, sunucu tarafındaki bir dilin yardımıyla girişi doğrulayan sunucu (web sunucusu), ör. Java.

'u asla istemci tarafı doğrulaması yapmamalısınız, çünkü sonuç son kullanıcı tarafından denetlenebilir (ve böylece de kesilebilir/paroksuz olabilir). Genellikle, istemci tarafı doğrulamasını kullanmak istersiniz, çünkü çok daha kısa bir geri bildirim verir. Son kullanıcının form gönderiminin tamamlanmasını beklemesine gerek yoktur ve bir "içerik flaşı" ile yüzleşmesi gerekmez (sayfa işlenir ve yeni içerikle yeniden görüntülenir). Gönderilen verilerin bütünlüğünü sağlamak için sunucu tarafı doğrulamasını kullanmak istersiniz. Sonlandırıcı, sunucu tarafı doğrulamanın sonucunu hiçbir şekilde kontrol etmemektedir.

JSF söz konusu olduğunda, doğrulama her zamansunucu tarafındadır. JSF 2.0, yerleşik ajaxical işlevselliğini kullanarak bir form göndermek (ve böylece formu doğrulamak) mümkün olduğundan. Bu, iki dünyanın en iyi özelliklerini bir araya getiriyor: flash içeriği olmadan anlık geri bildirim ve sunucu tarafı doğrulamasının sağlamlığı/bütünlüğü.

+0

Bu bilge kelimeler için teşekkür ederim. Lütfen bana bir kodun (veya bir örneğin) koduma :-) kodunun nasıl ekleneceğini söyler misiniz? :-) ya da basitçe bazen kafa karıştırıcı etiketi? – Sven

+1

Evet, 'f: ajax' javascript/AJAX’ı kodunuza eklemenin bir yoludur. Kullanmaya başlamak için işaretçiler için, ilgili bir soruya bakın: http://stackoverflow.com/questions/3138488/how-to-use-ajax-with-jsf-2-0 –

+2

@Sven: put < 'UICommand bileşeninin içinde. Veya her giriş öğesinin bulanıklığını doğrulamak istiyorsanız, her bir "UIInput" bileşeninin içine '' yazın. – BalusC

İlgili konular