防堵垃圾進垃圾出~在 UI 組件屬性 valid="true" 的情況下, 相關的物件將以此為進行更新前的動作, 驗證通過者物件群得以順利更新, 反之除不獲得更新外, 並產生相關的錯誤訊息組件 (HtmlMessage, HtmlMessages). - Validator 是可跨不用應用與復用的
- 一個輸入組件可以有 0..N 的 validator
實作概要
確保要求值輸入- 將 UI 組件設置成
- id="name"
- required="true"
- 自定義驗證方法可撰寫於 Managed Bean 中
- 錯誤訊息將由 <h:message for="從屬組件的ID" />
- <h:messages globol="true">
<h:message showSummary="true"
showDetail="false" for="userAgeID"
style="color: red; text-decoration:overline"/>
globalOnly:為true時,只顯示全局消息 showSummary:是否顯示消息概要。 showDetail:是否顯示消息詳細。
限定值範圍<h:outputLabel for="firstname" value="姓氏: *" /> <h:inputText id="firstname" value="#{employeeController.firstName}" required="true" label="Firstname">
<f:validateLength minimum="5" maximum="10"/> </h:inputText> <h:message for="firstname" /> 與 ManagedBean 方法結合<h:inputText id="emailInput" validator="#{registationBean.validateEmail}" value="...." /> 標準驗證器
引用圖表( JavaServer JSF in Action, 2005 )<f:validateLength>長度驗證器<f:validateLongRange>長整數Long類型驗證器<f:validateDoubleRange>長浮點數Double類型驗證器自定義驗證方法
自定義錯誤訊息(Message)
jsf-impl.jar
faces-config.xml <application> <message-bundle>CustomMessages</message-bundle>
<locale-config> <default-locale>en</default-locale>
<supported-locale>en</supported-locale> <supported-locale>es</supported-locale>
</locale-config> </application> <f:loadBundle basename=" CustomMessages" var="msg"/>
自定義驗證器
- 實作 javax.faces.validator.Validator 介面
- 在 faces-config.xml 中注冊
- <validator-id>
- <validator-class>
Example
public class EmailValidator implements Validator { ... }
|
|