この記事では、Liferay DXP 7.0のWeb Form Portletでカスタムバリデーションスクリプト機能を使用する方法を説明します。 ユーザーの皆さんは、Liferay Portal 6.2で同じ機能を使っていて、どの機能が同じで、どこが変わったのか気になるかもしれませんね。 この手順は、Liferay Marketplace で入手できる 更新された Web Form アプリ のためのものであることにご注意ください。 バリデーション機能は、残念ながら既存のFormsコアモジュールでは利用できません。
解像度
Liferay Portal 6.2 では、デフォルトで、各フィールドでカスタム検証スクリプトを使用することは 無効でした。 管理者は、 ╱liferay-portal-6.2-ee-sp20\tomcat-7.0.62webappsweb-form-portlet-WEB-INF-classes
フォルダ内に portlet-ext.properties
ファイル( portal-ext.properties
と間違えないように)を作成して、有効にしなければなりませんでした。
ポータルを再起動すると、Web Formポートレットでカスタムバリデーション機能が利用できるようになりました。
DXP 7.0 の利点のひとつは、デプロイされた Web Form アプリでカスタム検証スクリプト機能を有効にすると、ポータルを再起動する必要がないことです 。 通常、デフォルトではこれも無効になっています。 カスタム検証スクリプト機能を有効にするためには、以下のようにします:
- Web Form ポートレットが正しく配置され、右側の Add Application メニューに表示されていることを確認します。
- コントロールパネル → 設定 → システム設定 → その他に移動します。
- クリック web.form.service.configuration.name
- チェックボックス バリデーションスクリプトを有効にする を選択します(下部にあります)。
- [Update]ボタンをクリックします。
この時点で、Web Formポートレットでカスタム検証スクリプトを使用することができます。 サーバーの再起動は不要です。
例えば、アンケートの回答者に有効な電子メールアドレスの入力が必要な場合を想定してみましょう。
- Web Form ポートレットが追加された Web ページに戻ります。
- 縦に3つ並んだドットアイコン → 設定をクリックします。
- プラス記号 の下にある 名前をクリックします。
- 次のように入力します:
- 名前欄です:電子メール
- タイプ」ドロップダウンテキストを選択
- バリデーションスクリプトです:
var isEmail = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; if(currentFieldValue.search (isEmail) == -1 && currentFieldValue != '') { return false; } else { return true; }
- バリデーションエラーメッセージ有効な電子メールが必要です
- 保存する ボタンをクリックします。
- Configuration ウィンドウを閉じる
- ポートレットに Email フィールドが表示されることを確認する。
- 無効な電子メールアドレスでフォームを送信してみてください。 カスタム検証メッセージ Valid Email Required が表示されます。
図3は、ユーザーが不完全な電子メールアドレスを入力した場合に表示されるバリデーションメッセージです。
追加情報
なお、プロパティの表示方法-web.form.service.configuration.name-は、言語キーのため、既知の問題です。 将来のWeb Formアプリのバージョンで修正される予定です。