Wenn ich gehe localhost: 8080/app/admin/Städte URL, gibt meine Bewerbung mir einen Fehler:Spring MVC Form in .jsp Datei einschließlich nicht mit Apache Tiles
java.lang.IllegalArgumentException: Attribute 'value' is required when binding to non-boolean values
Fliesen Konfiguration Datei (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>
eingebundenen Datei (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>
Es gab keine Probleme, wenn ich dieses Formular in der Solid-JSP-Datei verwendete, bevor ich es in Kacheln aufteilte. Ich werde für jede Art von Rat dankbar sein.
EDIT: Controller-Methode
@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";
}
Hinzugefügt als Sie gefragt –
' ' liest/behält den überprüften Wert nur dann, wenn die Liste vom Typ Boolean/boolean ist. Wenn Ihre Benutzeroberfläche über ein Kontrollkästchen verfügt, verfügen Sie höchstwahrscheinlich über einen booleschen Wert, um das in Ihren Domänen-/Befehlsobjekten darzustellen. Wenn Sie dies nicht tun, besuchen Sie Ihr Domänenmodell erneut. –