.jsp文件中的Spring MVC表单不包括Apache Tiles

时间:2016-05-04 15:03:17

标签: java spring spring-mvc apache-tiles

当我要去 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";
}

2 个答案:

答案 0 :(得分:0)

您可以在帖子中添加相关的控制器方法吗?该问题似乎与JSP复选框字段有关。我认为你没有正确映射路径属性。

答案 1 :(得分:0)

我通过添加标记库支持来解决问题

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

在我的 cities.jsp 之上,虽然我已经在 head.jsp 中添加了这一行。