フォームにドロップダウンがあり、検証に失敗したときに問題が発生しました。私は準備可能なインターフェイスでxml検証を使用します。ドロップダウンのデータにアクセスするには、フォームからIDを渡す必要があります。問題は、検証に失敗し、prepare()/ prepareInput()が呼び出されたときに、IDを含むクラスの変数が1つも設定されていないときです。 IDは変更されない形式で非表示のパラメータです。ご意見をお聞かせください。 はStruts2の中で、 ユーリstruts2の検証:検証に失敗したときにドロップダウンリストを再作成
0
A
答えて
2
を準備する()ありがとうはそれは、アクションを初期化するために呼ばれているとコンストラクタに非常によく似た役割を埋め、多くの他のフレームワーク内のinit()の役割を持つという同義です。
default-stackを使用すると、アクションのすべてのパラメータが、検証が呼び出される前に設定されている必要があります。したがって、クライアントが実際にパラメータを渡している場合、ロジックの一部でクリアされない限り、なぜ、どのように欠けているのかわかりません。
フォームによって設定された値から派生したアクションのフィールドとして他のオブジェクトを取得する必要があり、そうでなければパラメータとして渡されることがあります。この場合、値が設定された後にprepareを呼び出して検証し、このシナリオが当てはまる場合はparams-prepare-paramsスタックが適切です。
個人的には、準備ロジックではなく、アクション実行メソッドに準備ロジックを配置します。 1つのクラスに複数のアクションを入れて、何が繰り返されるかを考慮してprepareメソッドが最も適切な場合のみです。 params-prepare-paramsは特別なケースですが、DIを使用すればそれを使う必要はないかもしれませんが、私が議論することもあります。
これは役に立たない場合は、アクションクラス/ xmlマッピング(存在する場合)を使用して質問を展開し、バリデーションXMLも提供してください。なぜこれが起こるのかがわかります。
関連する問題
- 1. Struts2の検証 - 検証が失敗した場合の子どもの再作成
- 2. 検証が失敗したときにカスタムメッセージを作成する
- 3. KeystoneJSで検証が失敗した場合にフラッシュメッセージを作成
- 4. JSF - 検証に失敗したフォーカスコンポーネント
- 5. 検証に失敗したフォームを再入力する
- 6. Regex検証失敗
- 7. yii2検証が失敗したときにcaptchaをリフレッシュ
- 8. PHP SSL3_GET_SERVER_CERTIFICATE:証明書の検証に失敗しました
- 9. javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:証明書署名の検証に失敗しました
- 10. RobotParserがSSL証明書の検証に失敗しました
- 11. requests.exceptions.SSLError:[SSL:CERTIFICATE_VERIFY_FAILED]証明書の検証に失敗しました
- 12. PythonソケットSSL:証明書の検証に失敗しました
- 13. Graphlab get_dependencies()SSL証明書の検証に失敗しました
- 14. タイムゾーンGem証明書の検証に失敗しました
- 15. ssl.SSLError:[SSL:CERTIFICATE_VERIFY_FAILED]証明書の検証に失敗しました。
- 16. INVALID_APP_CREDENTIAL:アプリケーションの検証に失敗しました。Firebase認証
- 17. textblob証明書の検証に失敗しました。エラー
- 18. 検証が失敗し、
- 19. struts2の準備と検証
- 20. Struts2条件付き検証
- 21. Struts2リストの検証
- 22. 検証に失敗した場合、Jqueryの検証は機能しません。
- 23. モデルの検証に失敗しましたが作成されました
- 24. JSR検証でのローカライズサポート検証に失敗した場合のメッセージのAPI
- 25. ドロップダウンリストの検証
- 26. AngularJSは、入力がダイナミック埋めたときに失敗し、検証を形成
- 27. Struts2検証とSelectタグ
- 28. Mockito検証に失敗しない
- 29. トークン作成失敗と検証失敗の違いは何ですか? (ストライプ)
- 30. Asp.net maintainScrollPositionOnPostBackとフォームの検証に失敗しました