【发布时间】:2015-12-04 20:55:35
【问题描述】:
我有两个关系为
的实体@Entity
public class Foo {
@Id
@GeneratedValue
private Integer id;
private String name;
@OneToMany(mappedBy = "foo")
private List<Bar> bars;
// *******************\\
}
和
@Entity
public class Bar{
@Id
@GeneratedValue
private Integer id;
private String title;
@ManyToOne
@JoinColumn(name = "foo_id")
private Foo foo;
// *******************\\
}
我得到要在表单中显示的栏列表以添加新的 foo
@RequestMapping(value = "/add-foo", method = RequestMethod.GET)
public String fooForm(Model model) {
model.addAttribute("bars", barService.findAll());
return "add-foo";
}
形式是
<form:form commandName="foo">
<form:input path="name"/><br>
<form:select path="bars" multiple="multiple">
<c:forEach items="${bars}" var="bar">
<form:option value="${bar.id}">${bar.title}</form:option>
</c:forEach>
</form:select><br>
<input type="submit" value="Add Foo with selected Bars">
</form:form>
在这里我看到所有使用的条形
<c:forEach items="${bars}" var="bar">
<form:option value="${bar.id}">${bar.title}</form:option>
</c:forEach>
但是当我提交表单时,使用控制器中的方法
@RequestMapping(value = "/add-foo", method = RequestMethod.POST)
public String addFoo(@ModelAttribute("foo") Foo foo) {
List<Bar> bars = foo.getBars();
for (Bar bar : bars ) {
logger.info("DEBUG Foo object", bar);
}
return "redirect:/foos-list";
}
似乎没有向服务器发送数据并说错误客户端发送的请求在语法上不正确。
【问题讨论】:
-
您的表单中控制器的
Request mapping在哪里?您是通过GET方法还是POST方法发送表单? -
@VigNesh 我已经更新了问题,请看一下。
标签: java spring jsp spring-mvc