当我要去 localhost:8080 / app / admin / cities 网址时,我的应用程序给了我一个错误:
java.lang.IllegalArgumentException:绑定到非布尔值时需要属性'value'
Tiles配置文件(tiles.xml):
<definition name="base" template="/WEB-INF/views/tiles/layouts/admin.jsp">
<put-attribute name="head" value="/WEB-INF/views/tiles/head.jsp" />
<put-attribute name="nav" value="/WEB-INF/views/tiles/nav.jsp" />
<put-attribute name="sidebar" value="/WEB-INF/views/tiles/sidebar.jsp" />
<put-attribute name="body" value="" />
<put-attribute name="scripts" value="/WEB-INF/views/tiles/scripts.jsp" />
</definition>
<definition name="admin/cities" extends="base">
<put-attribute name="body" value="/WEB-INF/views/admin/cities.jsp" />
</definition>
包含的文件(cities.jsp):
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<form:form method="DELETE" commandName="list" >
<table class="table table-bordered table-striped">
<thead>
<tr>
<th></th>
<th>
<spring:message code="msg.city"/>
</th>
<th>
<spring:message code="msg.region"/>
</th>
</tr>
</thead>
<tbody>
<c:forEach var="city" items="${citiesList}">
<tr>
<td>
<form:checkbox path="list" value="${city.id}"/>
</td>
<td>
<c:out value="${city.cityName}"/>
</td>
<td>
<c:out value="${getRegionName[city.region]}"/>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<input type="submit" value="Save Changes" />
</form:form>
在将此表单拆分为tile之前,我在solid .jsp文件中使用此表单时没有问题。 我会感谢任何建议。
编辑:控制器方法
@RequestMapping(value = "/cities")
public String citiesPage(Model model) {
model.addAttribute("getRegionName", new GetRegionName());
model.addAttribute("pageTitle", "cities");
model.addAttribute("citiesList", cityService.getCities());
model.addAttribute("list", new ListWrapper());
return viewPath + "cities";
}
答案 0 :(得分:0)
您可以在帖子中添加相关的控制器方法吗?该问题似乎与JSP复选框字段有关。我认为你没有正确映射路径属性。
答案 1 :(得分:0)
我通过添加标记库支持来解决问题
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
在我的 cities.jsp 之上,虽然我已经在 head.jsp 中添加了这一行。