3

グループ、セクション、質問、およびそれらのオプションの 4 つのオブジェクトが必要です。すべてのグループには異なるセクションがあり、セクションには複数の質問があり、質問にはオプションがあります。ここで、フォーム入力システムを設計して、すべてのグループとセクションを段階的にカバーできるようにする必要があります。私は春のmvcでこれをすべてやっています。

どうすればこの問題を解決できますか?

4

1 に答える 1

2

簡単なリストバインディングのおかげで、SpringMVCで確実にそれを行うことができます。

Spring MVCは非常に多くの自由を可能にするため、基本的にこのフレームワークのみを使用する場合は、最初からソリューションを考え出す必要があります。
これがユースケースと解決策です。ゼロから実装するのは少し難しいです。特定のニーズに合わせて自由に調整し、必要なUIフレームワークを追加してください。ただし、一般的なアイデアを得る必要があります。パートIIIにスキップして、簡単に答えることができます。

1つのページでグループを作成/編集するとします。

  • グループにセクションを編集/追加する
  • 任意のセクションに質問を編集/追加したい
  • 質問にオプションを編集/追加したい

I.ページデザイン:

  1. 1つの大きな単一フォームを持つJSPグループページがあります(これも単なる例です)
  2. ネストされたものを追加するためのボタンがあります。クリックすると、一部のJavaScriptに空白のフォームが表示され、情報が表示されます。この空白のフォーム自体には、ネストされたネストされたものを追加するためのボタンなどがあります(ものがオプションになるまで)。
  3. フォームが空白にならないことを除いて、表示/編集したい既存のものと同じデザインです。
  4. 現在のグループを作成しているか編集しているかを判断できます(ページのコンテキストまたはjavascript / htmlトリック)。
  5. javascript / jQueryのおかげで、グループ内に「ドラッグアンドドロップ」できる既存のセクションのリストがある場合があります

II。コードデザイン:

  1. JSPに対応するGroupControllerがあります
  2. GroupオブジェクトにはList<Section> sections属性があり、SectionオブジェクトにはList<Questions> questions属性があります。
  3. createGroupメソッドとeditGroupメソッドがあります
  4. JSPフォームを送信してcreateGroupまたはeditGroupを呼び出すと、送信されたグループの要素がすでに存在するかどうかを知ることができるため、DBでそれらを追加または編集/更新することを決定できます。このロジックはすべて、Springサービスなどの別のクラスで実行できます。
  5. 既存のセクションの可能なリストを常に提供します(両方のメソッドでこのリストをモデルに追加するか、さらに良いことに、@ ModelAttributeで注釈が付けられた単一のメソッドを実行します)。このリストは、別のクラス(Service / DAO /両方が最後にDBをタップする)で計算できます。

III。魔法:JSPフォームをJavaコントローラーにバインドする:

このページには、が<form:form commandName="group">あり、コントローラーメソッドパラメーターには。があります@ModelAttribute("group") Group group

ここで、最初のオプションの名前を送信するには、JSPに次のようにします。

<form:input path="sections[0].questions[0].options[0].name" />

(またはいくつかのjavascriptによって生成されたhtmlの同等のもの)。

于 2012-09-17T22:32:06.607 に答える