【发布时间】:2017-05-10 17:13:07
【问题描述】:
这是我在 Eclipse 服务器页面上遇到的错误:
没有为命名空间 [/] 和与上下文路径 [/StrutsTrial6] 关联的动作名称 [trial] 映射的动作。
这是我的 web.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>StrutsTrial6</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
这是我的 struts.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<struts>
<package name="default" extends="struts-default">
<action name="trial" namespace="/" class="first.FirstBean">
<result name="success">/first.jsp</result>
</action>
</package>
</struts>
这是我的输入jsp页面:
<%@ taglib uri="/struts-tags" prefix="s" %>
<s:form action="trial">
<s:textfield name="name" label="NAME"></s:textfield>
<s:submit value="save"></s:submit>
</s:form>
这是我的输出 jsp 页面:
<%@ taglib uri="/struts-tags" prefix="s" %>
name:<s:property value="name"/>
这是 pom.xml 文件:
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>StrutsTrial6</groupId>
<artifactId>StrutsTrial6</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.20.0-GA</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>ognl</groupId>
<artifactId>ognl</artifactId>
<version>3.1.12</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.10.1</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>7.0.56</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
过去 10 小时以来,我一直遇到此错误。 我还发现,有时,当我更改项目中的某些代码时,Eclipse 服务器不会更新我的项目,而是运行我之前的代码,所以请告诉我为什么我的 Eclipse 显示出如此奇怪的行为。提前致谢..
这是配置浏览器页面的截图:
无论我在包中使用 namespace="/" 还是不使用 namespace ,这都是相同的页面,并且在此页面中,它们没有在默认列中的操作中定义。
【问题讨论】:
-
1) 从 Maven 启用 struts2-confifgbrowser-plugin(并记住在投入生产之前将其删除),并检查发布操作的相应 URL; 2)
when I am changing some code in my project, Eclipse server does not update my project and instead it runs my earlier code, so please tell me why my eclipse is showing such a srange behaviour它被称为缓存:) -
感谢 andrea 的帮助....但是请您描述一下您的第一个答案,因为我是 struts 新手,所以我对它们了解不多。
标签: java xml eclipse maven struts2