问题描述
我正在将Struts1迁移到Struts2,组件之一是Struts1版本的TilesPlugin。 我已经阅读了Struts2 tile-plugin实现的说明,并按照这些步骤进行操作,但是发现它没有按预期加载配置。这是链接https://struts.apache.org/plugins/tiles/
问题是我需要知道如何与Struts1的现有TilesPlugin一起实现Struts2的tiles-plugin
新版本。 (我不能同时迁移所有操作以使用更新的Tiles-plugin,这需要做很多工作)
pom.xml (我仅添加了struts2-tiles-plugin
,但在运行时出错,然后添加了slf4j
解决了该问题)
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-tiles-plugin</artifactId>
<version>${struts2.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${slf4j.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>${slf4j.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>${slf4j.version}</version>
<scope>provided</scope>
</dependency>
tiles.xml
<tiles-deFinitions>
<deFinition name="baseLayout" template="/WEB-INF/path/to/layout.jsp">
<put-attribute name="title" value="default title layout" />
</deFinition>
<deFinition name="page1" extends="baseLayout">
<put-attribute name="title" value="page 1 title" />
<put-attribute name="body" value="/WEB-INF/view/page1.jsp" />
<put-attribute name="js" value="/WEB-INF/view/include/include_js.jsp" />
</deFinition>
</tiles-deFinitions>
<listener>
<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>
<context-param>
<param-name>tilesDeFinitions</param-name>
<param-value>/WEB-INF/tiles.xml</param-value>
</context-param>
struts.xml (将其添加到<package>
标记内)
<result-types>
<result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/>
</result-types>
struts-config.xml (这是Struts1配置,并且存在struts1-tiles-plugin)
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="deFinitions-config" value="/WEB-INF/tiles-def.xml" />
<set-property property="deFinitions-debug" value="2" />
<set-property property="deFinitions-parser-details" value="2" />
<set-property property="deFinitions-parser-validate" value="true" />
</plug-in>
layout.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="EUC-JP" session="true" %>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<Meta http-equiv="Content-Type" content="text/html; charset=x-euc-jp">
<Meta http-equiv="Content-Language" content="ja">
<title><tiles:getAsstring name="title"/></title>
<tiles:insertAttribute name="js"/>
</head>
<tiles:insertAttribute name="body"/>
</html>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)