Struts 2 Annotations 不适用于 Java 8。
我有以下适用于 Java 7 的示例,但在 Java 8 中给出了错误。
我猜这些错误与库和 Java 8 有关。
有人有这个问题吗??如果是这样我们怎么解决???
我正在使用带有 Java 8 和 Apache Tomcat 8 的 struts 2.3.15.1。
这个例子在 Java 7、struts 2.3.15.1 和 Apache Tomcat 8 上都能成功运行。我刚刚测试了两者。
当我使用 Java 8 时,它会出现以下错误:
> HTTP Status 404 - There is no Action mapped for namespace [/] and
> action name [test] associated with context path [/s2demo].
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<listener>
<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
测试动作.java
package action;
import org.apache.struts2.convention.annotation.Result;
@Result( name="success", location="/test.jsp")
public class TestAction {
public String execute() {
return "success";
}
}
测试.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Test Successful!</h1>
</body>
</html>
该项目中包含的库是:
asm-3.3.jar
asm-commons-3.3.jar
asm-tree-3.3.jar
commons-beanutils-1.8.0.jar
commons-digester-2.0.jar
commons-fileupload-1.3.jar
commons-io-2.0.1.jar
commons-lang3-3.1.jar
commons-logging-1.1.3.jar
files.txt
freemarker-2.3.19.jar
javassist-3.11.0.GA.jar
log4j-1.2.17.jar
ognl-3.0.6.jar
struts2-convention-plugin-2.3.15.1.jar
struts2-core-2.3.15.1.jar
struts2-tiles-plugin-2.3.15.1.jar
tiles-api-2.0.6.jar
tiles-compat-3.0.1.jar
tiles-core-2.0.6.jar
tiles-jsp-2.0.6.jar
tiles-servlet-3.0.1.jar
xwork-core-2.3.15.1.jar