このアプリケーションでは、JavaServer[tm] Faces テクノロジを使用して、クライアント側 JavaScript[tm] 妥当性検査とサーバー側 JavaServer Faces 妥当性検査の両方の妥当性検査に関する複数の対処法を紹介します。
クライアント側妥当性検査
index.jsp
ファイルにはまた、フィールドの色フィールドの内容を妥当性検査する JavaScript も含まれています。クライアントブラウザが JavaScript をサポートしていないか、JavaScript が無効にされている場合、クライアント側妥当性検査は機能しません。妥当性検査で問題が起きると、ブラウザは Web アプリケーションにフォームを送信しません。このため、時間やリソースの消費になるラウンドトリップが抑制されます。アプリケーションは、必ず、クライアント側妥当性検査が行われたかどうかに関係なくサーバー側妥当性検査を行うようにデザインすることを推奨します。
index.jsp
および response.jsp
ファイルの 2 つの JavaServer Faces ページで構成されています。このうち index.jsp
ページには、1 つのページにすべての JavaServer Faces コード例が含まれています。ページ内のデータが有効である場合は、response.jsp
ページに要求が送信され、妥当性検査で問題が起きた場合は、index.jsp
に戻ってエラーメッセージが表示されます。index.jsp
ページ内の次の JavaServer Faces コードは、メソッドバインド表現を使用して、ValidtorBean で validate メソッドを呼び出します。
<h:inputText id="smallNumber" value="#{ValidatorBean.smallNumber}"
validator="{JSFValidator.validate}"/>
ValidatorBean から抜粋した次のコードは、JavaServer Faces を処理するときに呼び出されます。
public void validate(FacesContext context,
UIComponent component,
Object value) throws ValidatorException {
if ((context == null) || (component == null)) {
throw new NullPointerException();
}
if (value != null) {
if (((String)value).equals("blueprints")) {
throw new ValidatorException(new FacesMessage("blueprints is invalid"));
}
}
}