【问题标题】:Tiles 2 + Spring: Attribute not foundTiles 2 + Spring:找不到属性
【发布时间】:2015-11-09 07:11:05
【问题描述】:

我正在努力将 Tiles 2 与 Spring 集成,但遇到了一个问题。我有一个简单的tiles.jsp 页面。渲染tiles 视图产生错误:org.apache.tiles.template.NoSuchAttributeException: Attribute 'title' not found.我的配置和文件如下。

瓷砖配置:

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:order="1">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/WEB-INF/pages/" />
    <property name="suffix" value=".jsp" />
</bean>
<bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="0">
    <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
    <property name="prefix" value="/WEB-INF/pages/" />
    <property name="suffix" value=".jsp" />
</bean>
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
    <property name="definitions">
        <list>
            <value>/WEB-INF/defs/templates.xml</value>
        </list>     
    </property>
</bean>

/WEB-INF/defs/templates.xml 中的定义:

<tiles-definitions>
    <!-- Default Main Template -->
    <definition name="base" template="/WEB-INF/pages/tiles.jsp">
        <put-attribute name="title" value="Empty" type="string" />
        <put-attribute name="header" value="/WEB-INF/tiles-templates/header.jsp" />
        <put-attribute name="footer" value="/WEB-INF/tiles-templates/footer.jsp" />
        <put-attribute name="body" value="/WEB-INF/tiles-templates/blank.jsp" />
    </definition>
    <definition name="tiles" extends="base">
        <put-attribute name="title" value="Simple Tiles 2 Example"/>
    </definition>
</tiles-definitions>

控制器:

@Controller
public class MainController {

    @RequestMapping("/tiles")
    public String tiles() {
        return "tiles";
    }
}

/WEB-INF/pages/tiles.jsp:

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

<html>
<head>
    <title><tiles:getAsString name="title" /></title>
    <link rel="stylesheet" type="text/css" href="<c:url value="/css/main.css"/>" />
</head>
<body>
    <div id="header">
       <div id="headerTitle"><tiles:insertAttribute name="header" /></div>
    </div>
    <div id="content">
       <tiles:insertAttribute name="body" />
    </div>
    <div id="footer">
       <tiles:insertAttribute name="footer" />
    </div>
</body>
</html>

【问题讨论】:

    标签: spring tiles2


    【解决方案1】:

    已解决!我已从 tilesViewResolver 中删除了 suffixprefix 属性,一切都开始工作了。

    <bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="0">
        <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
    </bean>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      • 2012-06-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-02
      • 2014-07-30
      相关资源
      最近更新 更多