建立自訂驗證器

當您設計動態網頁時,可以利用自訂驗證器來驗證您要以其他方式驗證的資料。 自訂驗證器會查看已送出的值,然後對它執行驗證。 比方說,您可以新增自訂驗證器到輸入文字欄位中,使驗證器確定已送出的值包含九個數字。 如果已送出的值不包含九個數字,當頁面呈現時,自訂驗證器會顯示錯誤訊息。

以下這個方法可讓您在 Web 專案中建立自訂驗證器。
  1. 建立 Web 專案(檔案 > 新建 > 動態 Web 專案)。
  2. 建立新的 Faces JSP 頁面(檔案 > 新建 > Faces JSP 檔)。
  3. 在「專案瀏覽器」視圖中,開啟 Web 專案的 Java™ 來源資料夾。
  4. 用滑鼠右鍵按一下 Java 來源資料夾,再按一下新建 > 套件
  5. 在「新建 Java 套件」對話框,將套件命名為 validator, 並按一下完成 即建立一個叫作 validator 的新套件, 顯示在 Java 來源資料夾中。
  6. 用滑鼠右鍵按一下 validator 套件,再按一下新建 > 類別
  7. 在「新建 Java 類別」對話框中:
    1. 將類別命名為 MyValidator
    2. 按一下新增
    3. 在所顯示的「實作的介面選項」對話框中, 在「選擇介面」欄位中輸入 javax.faces.validator.Validator
    4. 按一下確定
    5. 按一下完成 MyValidator.java 檔案就會建立在驗證器資料夾中,它包含的程式碼類似下列 Java 程式碼:
      package validator;
      
      import javax.faces.component.UIComponent;
      import javax.faces.context.FacesContext;
      import javax.faces.validator.Validator;
      import javax.faces.validator.ValidatorException;
      
      public class MyValidator implements Validator {
      
      	/* (non-Javadoc)
      	 * @see javax.faces.validator.Validator#validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
      	 */
      	public void validate(FacesContext arg0, UIComponent arg1, Object arg2)
      		throws ValidatorException {
      		// TODO 自動產生的方法 Stub
      
      	}
      
      public void validate(FacesContext arg0, UIComponent arg1, Object arg2)
      		throws ValidatorException {
      System.out.println("my custom validator");
      		//TODO: 在這裡新增自訂驗證程式碼。此程式碼將在 JSF 生命週期的驗證階段執行。
      			//如果發生任何驗證錯誤,您可以擲出異常狀況訊息,
      			//然後可利用 h:message (或 h:messages) 元件來顯示該訊息。
      
      	 }
  8. 在相同專案的 WEB-INF 資料夾中,開啟 faces-config.xml 檔案。 將下列程式碼新增至該檔案:
    <validator>
    	<validator-id>MyValidator<validator-id>	
    	<validator-class>validator.MyValidator<validator-class>
    <validator>
  9. 將輸入文字欄位新增至您在步驟 2 建立的頁面。
  10. 在頁面的來源模式中,新增驗證器標示作為 inputText 的子項,並將 validatorId 屬性設為 "MyValidator",如下所示:
    <h:inputText styleClass="inputText" id="text1"><f:validator validatorId="MyValidator"></f:validator></h:inputText>
  11. 將「指令 - 按鈕」元件新增至頁面。
  12. 在伺服器上執行頁面。按一下指令按鈕時,主控台上會顯示 "my custom validator"。
相關概念
JavaServer Faces
相關工作
將驗證新增至 Faces 輸入元件中
建立 Faces 應用程式 - 概觀
建立 Faces JSP 檔
JavaServer Faces 生命週期
相關參考
Faces 元件參照
Faces 元件的屬性
使用條款 | 讀者意見
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.