0

基本上我有一个表格,当我请求特定的 URL 进行目击时,我正在制作一个对象“目击”。虽然,在表单中我有另一个对象,我想在标签中从数据库中填充它。这个选择标签基本上从数据库中获取所有“害虫”并填充它们。我的控制器正在设置像这样添加 2 个属性,我不确定这是否是正确的做法,或者在提交时一个对象会覆盖另一个对象。

我的控制器方法:

@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 回答