基本的な問題
SpringMVCフォームタグを「ラップ」する独自のカスタムJSPタグを作成しているときに、少し問題が発生しました。他のタグを正常にラップしましたが、selectタグとoptionsタグでスタックが解除され、IlleagalStateExceptionがスローされます。スプリングコードをデバッグしたところ、optionsタグが祖先のselectタグを探していることがわかりました。私はタグファイルでこれを行っているので、春の選択タグは実際には別のタグファイルにあります。それが見つからない理由だと思います。
だから問題は、これを回避するために私が何ができるかということです。
考えられる解決策
私は解決策を探してみましたが、私が見つけたのは、同じ問題を抱えているが解決策が投稿されていない他の人々だけです。スプリングタグを使用せずに独自のselectタグとoptionsタグを作成することを考えましたが、無料で提供されるバインディングを複製する必要はありません。タグファイルではなくJavaクラスを使用するように変更してもかまいませんが、出力がJSPとして評価されないため、別のJSPタグを出力できないことが以前にわかりました。
これを行う理由
最初に質問してから1週間これについて考えたので、私は今、何を達成したいのかが明確になりました。
- JSPで必要なマークアップを簡素化するため
- 一般的なコードの因数分解(例:入力後のフォーム:エラーまたはspring:messageからの翻訳の取得)
- ルックアンドフィールをカプセル化するには(CSSは大いに役立ちますが、多くの場合、マークアップも変更する必要があります)
- スプリングタグの機能を拡張する拡張コンポーネントを構築できるようにする(たとえば、複数選択を選択リストとしてレンダリングする、または読み取り専用入力をテキストラベルとして表示する)
人々の意見を聞いてみたいと思います。ありがとう