我有一个在Struts 2.3.24.1中实现的应用程序,现在我需要在最新版本的Struts 2.5.20中对其进行更新。我升级了依赖关系并开始出现错误。
错误:
没有为与上下文路径[/ Struts2Tiles]关联的名称空间[/]和操作名称[welcomeLink]映射任何操作。 -[未知位置] 在com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:195)
我在struts.xml中尝试了以下解决方案
<constant name="struts.devMode" value="true" />
<package name="default" extends="struts-default" namespace="/">
我从以下URL下载整个示例示例: https://examples.javacodegeeks.com/wp-content/uploads/2017/09/Struts2Tiles.zip
Struts.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="default" extends="struts-default" namespace="/">
<result-types>
<result-type name="tiles"
class="org.apache.struts2.views.tiles.TilesResult" />
</result-types>
<action name="*Link" method="{1}"
class="com.jcg.struts2.tiles.LinkAction">
<result name="welcome" type="tiles">welcome</result>
<result name="friends" type="tiles">friends</result>
<result name="office" type="tiles">office</result>
</action>
</package>
</struts>
POM.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Struts2Tiles</groupId>
<artifactId>Struts2Tiles</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<!-- Servlet API Dependency -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!-- Struts2 Core Framework Dependency -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.20</version>
</dependency>
<!-- Struts2 Tiles Framework Dependency -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-tiles-plugin</artifactId>
<version>2.5.20</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
</build>
</project>
预期结果: 需要升级最新的Struts版本中的代码。