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

问题描述 投票:0回答:1

我正在对一个非常旧的Java项目进行更新转换,并在Spring Boot下进行转换。但是,我在渲染首页时遇到了困难,因为它们是使用 Struts 2

.ftl
s 和 Apache Tiles 构建的。

由于某种原因,我收到此错误:

JspTaglib [“

http://tiles.apache.org/tags-tiles
”]未定义:它不能分配给图块

当它尝试加载页面时,无法将其分配给图块。

我已经检查过,我拥有所有必需的

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" /> 
java struts2 freemarker apache-tiles tiles2
1个回答
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-examplestiles项目来演示这种集成。还要升级到最新的 Struts 版本。

您可以在

pom.xml
中找到该项目的合理部分。

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

© www.soinside.com 2019 - 2024. All rights reserved.