1

struts2 バリデーションまたはワークフロー インターセプターをカバーする私が読んだすべてのチュートリアルで、与えられた例は非常に基本的であり、すべてのフォーム フィールドに固定名があり、.jsp ファイルで事前定義されていることを前提としています。例えば:

<s:form method="post" validate="true">
      <s:textfield label="Name" name="name"/>
      <s:textfield label="Age" name="age"/>
      <s:textfield label="Favorite color" name="answer"/>
      <s:submit cssClass="btn btn-primary"/>
</s:form>

ただし、現在、javascript を使用して動的に作成されるフォームがあります。ページが読み込まれると、ajax を使用してデータベースから国のリスト (およびそれらの国のメタデータ) が取得されます。これらの国の名前がドロップダウン ボックスに表示されます。国ごとにいくつかの入力フィールドが生成され、DOM に追加されますが、これらは国が選択されるまで非表示のままです。これらの入力には、次のような ID があります。

france_extra_data_1
france_extra_data_2
france_extra_data_3

germany_extra_data_1
germany_extra_data_2

america_extra_data_1
america_extra_data_2
america_extra_data_3
america_extra_data_4

... and so on

ユーザーがアメリカなどの国を選択すると、名前にアメリカが含まれる ID を持つ入力が表示されます。他は非表示のままです。国 america には、必ずしも正確に 4 つの入力が関連付けられているわけではありません。適切な国が選択されたときだけでなく、すべての入力がその場で生成される理由は、すべての入力にプレースホルダー テキストがあり、データベースからこのデータを毎回取得するのではなく、ページの読み込み時に 1 回だけ取得したいからです。

問題は、このフォームを struts2 で検証したい場合です。バリデーターはフィールドの名前の知識を必要としますが、入力がいくつになるか (データベースによって異なります) を事前に知りません。 id のアメリカの入力)。

struts2 フレームワークはこの問題を解決できますか?

私はすでにこの質問を読みました: struts2 のフィールドバリデーターの動的フィールド名ですが、ビジターフィールドバリデーターは必要ありません!

4

0 に答える 0