2016-05-04 11 views
0

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"; 
} 

Antwort

0

Könnten Sie zu Ihrem Beitrag der Controller-Methode hinzufügen verbunden? Das Problem scheint mit dem JSP-Ankreuzfeld in Zusammenhang zu stehen. Ich denke, dass Sie das Pfadattribut nicht korrekt zuordnen.

+0

Hinzugefügt als Sie gefragt –

+0

'' 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. –

0

löste ich das Problem durch die Tag-Bibliothek Unterstützung in enthalten head.jsp Zugabe

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 

auf meinem cities.jsp, obwohl ich bereits diese Zeile haben.