gpt4 book ai didi

spring-mvc - Spring MVC、Tiles 3 和 Freemarker 集成

转载 作者:行者123 更新时间:2023-12-01 13:58:59 25 4
gpt4 key购买 nike

我已将 Freemarker 集成到现有的 spring MVC 和 Tiles 3 应用程序中,发现它无法读取 tiles 定义文件。它直接读取内容磁贴,这是磁贴定义文件中配置的 3 个磁贴之一,绕过了磁贴定义文件。我怎样才能让它读取 tiles 定义文件?这是我的代码:

applicationContext.xml

<mvc:annotation-driven />

<mvc:resources mapping="/resources/**" location="/resources/" />

<bean id="viewResolver" class="org.springframework.web.servlet.view.tiles3.TilesViewResolver"/>

<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tile-defs/view.xml</value>
<value>/WEB-INF/tile-defs/survey.xml</value>
</list>
</property>
</bean>

<bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape"/>

<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath">
<value>/WEB-INF/views/</value>
</property>
<property name="freemarkerVariables">
<map>
<entry key="xml_escape" value-ref="fmXmlEscape"/>
</map>
</property>
<property name="freemarkerSettings">
<props>
<prop key="template_update_delay">3</prop>
</props>
</property>
</bean>

<bean id="freeMarkerViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="cache" value="true"/>
<property name="prefix" value=""/>
<property name="suffix" value=".ftl"/>
<property name="exposeSpringMacroHelpers" value="true"/>
<property name="exposeRequestAttributes" value="true"/>
<property name="exposeSessionAttributes" value="true"/>
</bean>

tiles-def.xml

<tiles-definitions>
<definition name="template"
template="/WEB-INF/views/main_template.ftl">
<put-attribute name="header"
value="/WEB-INF/views/tiles/header.ftl" />
<put-attribute name="footer"
value="/WEB-INF/views/tiles/footer.ftl" />
</definition>
<definition name="home" extends="template">
<put-attribute name="content" value="/WEB-INF/views/home.ftl" />
</definition>

ma​​in_template.ftl

<body>

<!-- Header -->
<tiles:insertAttribute name="header" />

<tiles:insertAttribute name="content" />

<!-- Footer Page -->
<tiles:insertAttribute name="footer" />

</body>

home.ftl

<#import "spring.ftl" as spring />



Hello world!


<P> The time on the server is ${serverTime}. </P>
<P> ${message}. </P>

header.ftl

<#import "spring.ftl" as spring />

This is header

最佳答案

我遇到了同样的问题。我通过将它添加到我的 ftl 文件的顶部来解决它

<#assign tiles=JspTaglibs["http://tiles.apache.org/tags-tiles"]>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

并使用

<@tiles.insertAttribute name="header" />

从 tiles 定义中插入一些东西。

关于spring-mvc - Spring MVC、Tiles 3 和 Freemarker 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26893380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com