Tiles 模板有时未加载

Tiles template sometimes not loaded

我们在 Spring MVC 应用程序中使用 Tiles 3。有时(每第 5 个或第 10 个服务器启动)模板未加载。仅显示 .jsp 页面,没有页眉和页脚。你有什么建议吗?

Spring配置

@Bean
    public InternalResourceViewResolver getInternalResourceViewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix(JSP_PREFIX);
        resolver.setSuffix(JSP_SUFFIX);
        return resolver;
    }


    @Bean
    public TilesConfigurer tilesConfigurer() {
        TilesConfigurer tilesConfigurer = new TilesConfigurer();
        String[] defintions = new String[] { TILES_DEF };
        tilesConfigurer.setDefinitions(defintions);
        return tilesConfigurer;
    }

    @Bean
    public ViewResolver viewResolver() {
        TilesViewResolver viewResolver = new TilesViewResolver();
        viewResolver.setCacheUnresolved(false);
        return viewResolver;
    }

瓷砖-definition.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE tiles-definitions
  PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" "http://tiles.apache.org/dtds/tiles-config_3.0.dtd">

<tiles-definitions>

    <definition name=".mainTemplate" template="/WEB-INF/jsp/fragments/template.jsp">
        <put-attribute name="header" value="/WEB-INF/jsp/fragments/header.jsp" />
        <put-attribute name="body" value="/WEB-INF/jsp/fragments/body.jsp" />
        <put-attribute name="footer" value="/WEB-INF/jsp/fragments/footer.jsp" />
    </definition>



    <definition name="vermittlerUebersicht" extends=".mainTemplate">
        <put-attribute name="body" value="/WEB-INF/jsp/vermittlerUebersicht.jsp" />
    </definition>

</tiles-definitions>

还有 template.jsp

<!DOCTYPE html>
<%@ page pageEncoding="UTF-8" %>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>


    <tiles:insertAttribute name="header" />
    <tiles:insertAttribute name="body" />
    <tiles:insertAttribute name="footer" />

谢谢帮助!

我找到了解决办法!我在 spring 配置中有 2 个视图解析器。因此,无法确定首先从哪个视图解析器处理请求。我必须设置视图解析器的顺序。 InternalResourceViewResolver 必须具有最低优先级(==高顺序号)。