slack

テクてく Lotus 技術者 Slack に参加しよう!

2010/01/08

XPages Tutorial Part 34 : サーバーサイドの妥当性検査

Server Side Validation {Original Source}

前回はクライアントサイドでの簡単な妥当性検査を見てきました。
今回は前回作成したものをサーバーサイドでの妥当性検査に切り替え、その違いを見ていきましょう。

Domino 8.5 をインストールした時点では、クライアントサイドの妥当性検査はサーバーでのデフォルト設定として使用できるようになっています。
これをサーバーサイドでだけ妥当性検査をさせたいのであれば「ドミノ実行ディレクトリー\xsp\nfs」フォルダの「xsp.properties」を開き xsp.client.validation の行を false に設定します。これによってすべての Xpage に適用されます。
しかし、アプリケーションによってはクライアントサイドでの妥当性検査を行うケースもあるので、私のお勧めはこの設定はせず、アプリケーションレベルあるいは XPage レベルで制御したほうがよいと思われます。

アプリケーションレベルで妥当性検査をサーバーレベルで行いたい場合は、「アプリケーションのプロパティ」をアプリケーションのアウトラインから開き、「XPage」タブのクライアントの検証をオフにします。

一番末端のレベルで言うと、コントロールレベルでクライアントサイドの妥当性監査を無効にすることができます。「content_Person」カスタムコントロールの開き、「JobTitle」の編集ボックスを選択しすべてのプロパティタブを開いてください。
「データ」の下に「disableClientSideValidation」のオプションがあり、「true」か「false」を設定できます。(値の計算を使用することも可能)


クライアントサイドの妥当性検査が有効であれば、エラーが発生したメッセージはブラウザの中でダイアログボックスが自動的に表示れるので私たちは気にする必要はありませんが、サーバーサイドの検証の場合にはエラーを表示される場所を XPage の中で決めなければなりません。
エラーの表示には「コアコントロール」の中の 2 つのコントロールがあるのを確認してください。


「エラー表示」は単一のエラーメッセージを表示するもので、編集可能なコントロールのひとつにリンクする形になり、複数エラー表示はその XPage のすべてのエラーを表示させることができます。
この 2 つを試してみるために、タブ付きパネルの上に複数エラー表示、JobTitle 編集ボックスの横にエラー表示を配置します。

この 2 つのコントロールのプロパティは非常によく似ていますが、大きな違いは「エラー表示」は編集コントロールに関連していることです。


ではカスタムコントロールを保存し、XPage でエラー表示させてみてください。




表示されたメッセージはまったく飾り気のないものなので余裕があれば「lotusMessage」のスタイルクラスを追加してみてはどうでしょうか。このアプリケーションの最終形は、エラー表示だけを使ってフィールドの妥当性検査を追加し、複数エラー表示コントロールを削除する予定です。

次回は正規表現を使用して妥当性検査を行う方法を見ていきます。たとえば電話番号に不正な文字などが入っていないようにチェックをします。

0 件のコメント:

コメントを投稿