私はクラス階層を持っています.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 に投稿するのは面倒に思えます。
アドバイスをありがとう。