在这种情况下如何从JSP下拉列表中获取值更好?按“提交”按钮后,现在出现400状态错误。我试图在Google中搜索解决方案,但没有任何可以帮助我的变体。
有一些代码片段属于这个问题。 头等舱:
public class Item1 {
private int id;
private Item2 item2;
//getters, setters
}
第二课:
public class Item2 {
private int id;
private String description;
//getters, setters
}
头等控制器:
@Controller
public class Item1Controller {
@Autowired
private Item1DAO item1DAO;
@RequestMapping(value = "/saveItem1", method = RequestMethod.POST)
public ModelAndView saveItem1 (@ModelAttribute Item1 item1) {
item1DAO.addOrUpdateCourse(item1);
return new ModelAndView("redirect:/item1List");
}
}
JSP表单:
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@page isELIgnored="false" %>
<html>
<head>
<title>Add New Item1</title>
</head>
<body>
<form:form method="POST" action="/saveItem1" modelAttribute="item1">
<table>
<form:hidden path="id"/>
<tr>
<td><form:label path="Item2">Item2</form:label></td>
<td>
<form:select path="item2">
<form:option value="null">No Item2</form:option>
<form:options items="${item2List}"/>
</form:select>
</td>
</tr>
<tr>
<td>
<input type="submit" value="Save Item1"/>
</td>
</tr>
</table>
</form:form>
</body>
</html>
答案 0 :(得分:0)
您应该将“get”和“set”方法(public)放入Item类中。公共构造函数将是一件好事。 我会尝试写相同的路径属性值:description
答案 1 :(得分:0)
path
形式有多处错误。每个都必须引用一个简单的字段,而不是复杂的对象。
例如,您需要:
<form:input path="item2.description"/> <!-- not path="description", no description in the Item1 model -->
<form:label path="item2.id"> <!-- not "Item2" by itself, and wrong case -->
<form:select path="item2.id"> <!-- not "item2" by itself -->