最近开始学习struts2,建了个简单练习,然而,action控制器总是404,弄了好久了
,直接访问webcontent下的jsp文件是可以的,但是这个action总是有毒!!求大神
刚刚发了一次悬赏,但是不知道怎么的,根本看不到代码,逼我再发一次。
index.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>helloword</title>
</head>
<body>
sdfasdfasdfasdfa
<a href="${pageContext.request.contextPath }/helloworld.action">6666666</a>
</body>
</html>
web.xml
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Struts Blank</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>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<!-- Restricts access to pure JSP files - access available only via Struts action -->
<security-constraint>
<display-name>No direct JSP access</display-name>
<web-resource-collection>
<web-resource-name>No-JSP</web-resource-name>
<url-pattern>*.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>no-users</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<description>Don't assign users to this role</description>
<role-name>no-users</role-name>
</security-role>
</web-app>
struts.xml
<struts>
<!-- Struts2的Action必须放在指定的包空间下定义 -->
<package name="hello" extends="struts-default" namespace="/*">
<!-- 定义 action,该action对应的类为cn.itcast.action.HelloWorldAction类
-->
<action name="helloworld" class="cn.itcast.action.HelloWorldAction">
<!-- 定义处理结果和视图资源之间的映射关系 -->
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
HelloWorldAction.java
package cn.itcast.action;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorldAction extends ActionSupport{
public String execute() throws Exception{
System.out.println("dddddd");
int i=0;
return "success";
}
}
最后加个目录结构
package name="hello" extends="struts-default" namespace="/*" 中的namespace="/*" 改为namespace="/ ”
<web-resource-collection>
<web-resource-name>No-JSP</web-resource-name>
<url-pattern>/*.jsp</url-pattern>
</web-resource-collection>
web.xml里面:试试
No-JSP
/*.jsp
Struts.xml 里面action没有指定class?指定class到对应action才能找到对应的。
starts配置文件中路径..
检查struts是否在src目录下
你先单独打开一个浏览器标签页输入路径进行访问看看是不是还是报错404,如果还是报错404,那么可能是路径有问题。重新改一下路径。
你试试把web.xml中的路径由/*变成 *.action试试看。
在你要进入的方法里面打个断点。或者检查你的指向类或者result标签处理之后返回的页面。返回值看看是不是和你方法返回值一样。
报404错误应该是你哪里的路径配置出问题了,你看看struts.xml中路径是否配置正确