2012-02-13 109 views
2

我一直在研究更好的框架,可以用來驗證客戶端和服務器端的數據。我知道在雙方進行驗證非常重要。用於java客戶端驗證的GWT驗證框架

我因此遇到了一個叫做GWT驗證框架的東西,它可以在兩邊進行驗證。我有幾個JSP的。我有o在客戶端驗證用戶填寫的數據。但是我還沒有找到一個關於如何去做的例子?任何人都可以請相同的啓發。

謝謝

P.S:這將不勝感激,如果有人可以幫助一些更好的客戶端驗證方法(而不是Java腳本等)。

回答

2

GWT支持將javax.validation編譯爲編譯模塊,但在實際使用GWT的情況下使用起來並不容易。驗證機制由JSR-303 bean驗證支持,因此需要在客戶端和服務器上都看到bean - 由jsp創建的html客戶端頁面是不夠的,您需要創建並加載GWT模塊到頁面上。

在GWT中,您編寫了類似Java的代碼,並編譯爲JavaScript。 JSR303支持也被編譯爲javascript,因此任何數量的客戶端驗證都不夠 - 請參閱Why is client-side validation not enough?以獲取更多解釋 - 您的服務器還需要運行驗證。

如果你還沒有使用GWT,那麼GWT的驗證不會對你的項目有很大意義。如果您認爲這一切對您都有意義,那麼請開始使用它 - 有關詳細信息,請查看http://www.gwtproject.org/doc/latest/DevGuideValidation.html,並查看https://github.com/gwtproject/gwt/tree/master/samples/validation的示例項目。

+0

得到它。所以這個驗證框架在與GWT組件一起使用時是有效的。除了JS和Struts驗證之外,您還可以推薦其他任何好的和最新的客戶端驗證技術嗎? – 2012-02-14 04:39:40

+0

客戶端?如何在不使用JS的情況下在客戶端上運行?即使struts或類似的東西也會使用一些服務器代碼來寫出JS到頁面來驗證它 - 我猜你已經完成了一個你想添加驗證的JSP,而不是從一個新的框架開始(wicket,tapestry ,玩,但有很多其他)支持驗證。 – 2012-02-14 04:47:11

+0

你猜對了。我有JSP的,並希望添加客戶端驗證。使用JS這是檢查客戶端驗證的傳統方式。因此,我正在檢查是否有更有效的現代方式來做到這一點。 – 2012-02-14 05:10:01

1
  1. 對於客戶端的數據驗證

我使用Putnami Web工具包(PWT)。 該框架符合常見的JSR-303 bean驗證註釋。

您可以在這個位置找到文檔和活生生的例子: http://pwt.putnami.org/#!Validation

  • 對於
  • 我使用Hibernate的Bean驗證服務器端的數據驗證JSR-303參考實現(版本4.3.2-Final)。

    的下面例如:

    進口:

    import java.util.HashSet; 
    import java.util.Set; 
    import javax.validation.ConstraintViolation; 
    import javax.validation.ConstraintViolationException; 
    import javax.validation.Validation; 
    import javax.validation.ValidationException; 
    import javax.validation.Validator; 
    

    代碼:

    final Set<ConstraintViolation<BeanToValidate>> violations = validator.validate(form); 
         if (!violations.isEmpty()) { 
          final Set<ConstraintViolation<?>> constraintViolations = new HashSet<ConstraintViolation<?>>(
            violations); 
          throw new ConstraintViolationException(constraintViolations); 
         }