0

基本的に、特定の URL を要求して目撃を行うときに、「目撃」オブジェクトを作成するフォームがあります。ただし、フォームには、タグにデータベースから入力したい別のオブジェクトがあります。この選択タグは、基本的にデータベースからすべての「害虫」を取得し、それらを設定します。私のコントローラーは、このように 2 つの属性を追加するように設定しています。それが正しい方法であるかどうか、または送信時に 1 つのオブジェクトが別のオブジェクトを上書きするかどうかはわかりません。

私のコントローラーの方法:

@RequestMapping("/sighting")
public String makeSighting(Model model, Principal principal) {

    List<Pest> pests = pestsService.getPests();
    model.addAttribute("pests", pests);
    model.addAttribute("sighting", new Sighting());

    return "sighting";
}

あなたが私を助けることができれば、それは素晴らしいことです. 必要に応じて、フォームのコードも提供します。ありがとう

4

1 に答える 1

1

このアプローチに問題はありません。ただし、次のように単一のフォーム バッキング オブジェクトを定義できますform

class SightingForm {
Sighting sighting;
List<Pest> pests;
...
}

そして、これを使用して次のデータを入力できますform

@RequestMapping("/sighting")
public String makeSighting(Model model, Principal principal) {

    List<Pest> pests = pestsService.getPests();
    SightingForm sightingForm = new SightingForm();
    sightingForm.setSighting(new Sighting());
    sightingForm.setPests(pests);

    model.addAttribute("sightingForm", sightingForm);

    return "sighting";
}

JSP では、このシングルsightingFormをフォーム バッキング オブジェクトとして使用します。

<form:form id="form" action="${submitUrl}" modelAttribute="sightingForm" method="POST">
<form:input path="property" id="propertyId" />
...
</form:form>
于 2013-10-05T11:29:44.167 に答える