JspTaglib [“http://tiles.apache.org/tags-tiles”]未定义:无法分配给磁贴

时间:2017-02-02 08:09:30

标签: java struts2 freemarker apache-tiles tiles2

我正在对一个非常古老的Java项目进行更新转换,并在Spring Boot下进行转换。但是,我在使用Apache Tiles使用Struts2 .ftl构建前端页面时遇到困难。由于某种原因,我得到此错误JspTaglibs未定义。当它尝试加载页面时,无法将其分配给切片。

我已经检查过我必须拥有所有Jar文件(我想?),但由于我对.ftl或瓷砖一点都不熟悉,我无法弄清楚问题是什么

依赖关系:

    <dependency>
        <groupId>org.apache.tiles</groupId>
        <artifactId>tiles-core</artifactId>
        <version>2.2.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tiles</groupId>
        <artifactId>tiles-api</artifactId>
        <version>2.2.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tiles</groupId>
        <artifactId>tiles-jsp</artifactId>
        <version>2.2.2</version>
    </dependency>

    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-core</artifactId>
        <version>2.1.8.1</version>
    </dependency>

    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-tiles-plugin</artifactId>
        <version>2.1.8</version>
    </dependency>

    <dependency>
        <groupId>org.freemarker</groupId>
        <artifactId>freemarker</artifactId>
        <version>2.3.15</version>
    </dependency>

我正在将图块分配给页面

<#assign tiles=JspTaglibs["http://tiles.apache.org/tags-tiles"]>

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

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

1 个答案:

答案 0 :(得分:0)

将此添加到web.xml或使用Spring Boot启动此servlet。

<servlet>
    <servlet-name>jspSupportServlet</servlet-name>
    <servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
    <load-on-startup>5</load-on-startup>
</servlet>

需要在Struts 2中将Freemarker与Tiles集成。

您可以使用展示此类集成的struts-examples磁贴项目。还升级到最新的Struts版本。

您可以在pom.xml中找到此项目的明智之处。

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <struts2.version>2.5.8</struts2.version>
</properties>