2012-05-14 65 views
2

我正在爲我的項目使用struts2。 現在我有一個商業信息填寫表單獲取商業細節。 在形式我有一些基本的項目,如電子郵件,用戶名,密碼,確認密碼& Facebook的微博鏈接(FB &高音鏈接是可選的,但如果用戶輸入我想檢查它們是否是真實的) 對於我使用的基本項目XML文件驗證爲:Struts2驗證框架如何工作

<validators> 
    <field name="companyname"> 
     <field-validator type="requiredstring"> 
      <param name="trim">true</param> 
      <message>Company name is required.</message> 
     </field-validator> 
    </field>   
    <field name="fblink"> 
     <field-validator type="url"> 
     <message>Please enter a valid url</message> 
     </field-validator> 
    </field> 
    <field name="tweetlink"> 
     <field-validator type="url"> 
     <message>Please enter a valid url</message> 
     </field-validator> 
    </field> 
</validators> 

&如果用戶的Facebook或Twitter網址我寫在Action類的validate()方法驗證,以檢查他們是否爲真正的進入值(指HTTP_STATUS_CODE = 200) 爲:

public void validate() 
    { 
if(getFblink()!=null && !getFblink().isEmpty()) 
     { 
      if(URLValidation.validate(getFblink())== false) 
      { 
       addFieldError("fblink", getText("Enter valid facebook page link")); 
      } 
     }  
     if(getTweetlink()!=null && !getTweetlink().isEmpty()) 
     { 
      if(URLValidation.validate(getTweetlink())== false) 
      { 
       addFieldError("tweetlink", getText("Enter valid tweeter link")); 
      } 
     } 
    } 

這裏URLValidation是我的類&它包含靜態方法驗證,它使用URL &使用Httpclient庫我打&檢查其狀態代碼。 根據它的返回值,即布爾值,我正在設置錯誤消息。

它的工作。但我想知道我的方法是正確的? 另外我想使用shor-circcuit驗證,所以我怎樣才能在xml溝通& validate()驗證碼?

回答

0

您想要驗證鏈接並希望使用您的代碼(來自驗證xml)。這可以通過編寫自定義驗證器來實現。編寫一個自定義驗證器,並通過XML文件爲您的字段使用它。

例如,你可以看到this tutorial的想法。