legacy-knowledge-base
公開されました Jul. 2, 2025

DXP 7.0でWebフォームポートレットにカスタムバリデーションスクリプトを作成する。

投稿者

Justin Choi

knowledge-article-header-disclaimer-how-to

knowledge-article-header-disclaimer

legacy-article

learn-legacy-article-disclaimer-text

この記事では、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ポートレットでカスタムバリデーション機能が利用できるようになりました。
web-form-validation02_-_01.png

DXP 7.0 の利点のひとつは、デプロイされた Web Form アプリでカスタム検証スクリプト機能を有効にすると、ポータルを再起動する必要がないことです 。 通常、デフォルトではこれも無効になっています。 カスタム検証スクリプト機能を有効にするためには、以下のようにします:

  1. Web Form ポートレットが正しく配置され、右側の Add Application メニューに表示されていることを確認します。
  2. コントロールパネル → 設定 → システム設定 → その他に移動します。
  3. クリック web.form.service.configuration.name
  4. チェックボックス バリデーションスクリプトを有効にする を選択します(下部にあります)。
    web-form-validation01_-_02.png
  5. [Update]ボタンをクリックします。

この時点で、Web Formポートレットでカスタム検証スクリプトを使用することができます。 サーバーの再起動は不要です。

例えば、アンケートの回答者に有効な電子メールアドレスの入力が必要な場合を想定してみましょう。

  1. Web Form ポートレットが追加された Web ページに戻ります。
  2. 縦に3つ並んだドットアイコン → 設定をクリックします。
  3. プラス記号 の下にある 名前をクリックします。
  4. 次のように入力します:
    • 名前欄です:電子メール
    • タイプ」ドロップダウンテキストを選択
    • バリデーションスクリプトです:
      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;
      }
      
    • バリデーションエラーメッセージ有効な電子メールが必要です
  5. 保存する ボタンをクリックします。
  6. Configuration ウィンドウを閉じる
  7. ポートレットに Email フィールドが表示されることを確認する。
  8. 無効な電子メールアドレスでフォームを送信してみてください。 カスタム検証メッセージ Valid Email Required が表示されます。
    web-form-validation03_-_03.png

図3は、ユーザーが不完全な電子メールアドレスを入力した場合に表示されるバリデーションメッセージです。

追加情報

なお、プロパティの表示方法-web.form.service.configuration.name-は、言語キーのため、既知の問題です。 将来のWeb Formアプリのバージョンで修正される予定です。

Webフォームポートレットでバリデーション機能を活用する

did-this-article-resolve-your-issue

legacy-knowledge-base