私はクラス階層を持っています.1つのクラスBook
は、より具体的なアイテムの基本クラスですChildrensBook
。
フィールドを編集できるように、これらの項目を JSP フォームで表示する必要があります。Book
共通点が非常にChildrensBook
多いため、1 つのコントローラーと 1 つの JSP フォームを使用するのが妥当と思われます。実際ChildrensBook
には、 に 1 つのフィールドを追加しただけです。Book
たとえば、ageGroup
. JSP は、インスタンスの編集時にのみ、このフィールドの入力ボックスを表示します。ChildrensBook
コードを書き始めましたが、完成したフォームが MVC コントローラーにポストされたときに問題が発生しました。フォームを処理するメソッドは次のとおりです。
@RequestMapping( value="*", method = RequestMethod.POST )
public String onSubmit( @Valid @ModelAttribute("entity") BookCommand command, BindingResult result, RedirectAttributes redirectAttributes, ModelMap model )
{ /* code not shown */ }
ご覧のとおり、フォームをにバインドしていますBookCommand
が、児童書をChildrensBookCommand
オブジェクトにバインドするにはフォームが必要です。
この場合の良い解決策は何ですか? 専用の別のフォーム/コントローラーを作成ChildrensBook
すると、多くの望ましくない重複コードが発生します。ChildrensBookCommand
代わりにa を使用して別のハンドラー メソッドを作成するとBookCommand
、おそらく MVC がどちらを使用するかを判断できないため、失敗します。<form:form ...>
フォームのアクション URL を自動的に設定する Spring タグを使用しているため、児童書のフォームを別の URL に投稿するのは面倒に思えます。
アドバイスをありがとう。