Tomcat7+struts2出现There is no Action mapped for action name welcome.
这是struts.xml文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="helloWorld" extends="struts-default" namespace="day01"> <action name="welcome" class="test.WelcomeAction"> <result name="success">/WEB-INF/welcome.jsp</result> <result name="fail">/WEB-INF/nameForm.jsp</result> </action> </package> </struts> --------------------------------------------------------------------------------- 这是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_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>Cat</display-name> <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>--------------------------------------------------------------------------------------
这是WelcomeAction.java文件package test; public class WelcomeAction{ private String name; public String showYourName(){ System.out.print("Your Name is : "); System.out.println(name); if("monster".equalsIgnoreCase(name)){ return "fail"; } return "success"; } public String getName() { return name; } public void setName(String name) { this.name = name; } }--------------------------------------------------------------------
以下是2个jps页面--------------------nameForm.jsp--------------- <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="/test/day01/welcome.action" method="post"> <input type="text" name="name"> <input type="submit" value="SUBMIT"> </form> </body> </html> -------------------------------------------------------------------------- ----------welcome.jsp---------------------<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h2>Welcome, ${name}</h2> </body> </html>目录结构如下:
WEB-INF目录下有classes目录,不知道为什么在视图里面没出现,我在工作区里面可以找到classes目录,里面还有struts.xml文件
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(18)
回复
我后来没导包,试了试,貌似不需要导包了,我用的struts2+tomcat7
这个接口在哪个包啊,我之前试过ActionSupport但是老是报编译错误,也找不到包
<action
name="welcome"
class="test.WelcomeAction" /*这里添加一个method="
showYourName()"试试*/>
ok
1,你的action么有继承ActionSupport 哪里来execute ?
2,<result name="success">/WEB-INF/welcome.jsp</result> 这个是不被访问的!受保护的!
要添加一个连接进去的是吧
struts2配置文件释放src下的
我用的eclipse没用myeclipse,感觉有点不太一样
public class WelcomeAction implements Action{};
我把shoowYourName()改称execute()试试,又变成404了。。。。
我把shoowYourName()改称execute()试试,又变成404了。。。。
起码搞个构造函数吧,起码有execute方法吧
再发张截图
我后来直接把namespace删掉不用了,把编译后的.class文件和struts.xml手动复制到WEB-INF里面的classes目录里面运行ok
@55wish 应该是这个问题
回复
感觉struts很乱啊,不知道为什么设计这么一个框架,还这么多隐含的默认操作,。。。
@55wish 算是为了简化操作,本身更麻烦
namespace?查查