帅气的张张
2017-12-26 09:31
采纳率: 66.7%
浏览 2.2k
已采纳

eclipse struts2 action访问总是404

最近开始学习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";
    }
}

最后加个目录结构
图片说明

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • qinghong_you 2017-12-26 12:42
    已采纳

    package name="hello" extends="struts-default" namespace="/*" 中的namespace="/*" 改为namespace="/ ”

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 流风Y回雪 2017-12-26 09:49
     <web-resource-collection>
                <web-resource-name>No-JSP</web-resource-name>
                <url-pattern>/*.jsp</url-pattern>
            </web-resource-collection>
    
    评论
    解决 无用
    打赏 举报
  • 流风Y回雪 2017-12-26 09:50

    web.xml里面:试试

    No-JSP
    /*.jsp

    评论
    解决 无用
    打赏 举报
  • 敷盎方 2017-12-26 11:10

    Struts.xml 里面action没有指定class?指定class到对应action才能找到对应的。

    评论
    解决 无用
    打赏 举报
  • zd78978971 2017-12-26 12:44

    starts配置文件中路径..

    评论
    解决 无用
    打赏 举报
  • qq_40044410 2017-12-26 15:44

    检查struts是否在src目录下

    评论
    解决 无用
    打赏 举报
  • 千劫 2017-12-27 14:18

    你先单独打开一个浏览器标签页输入路径进行访问看看是不是还是报错404,如果还是报错404,那么可能是路径有问题。重新改一下路径。
    你试试把web.xml中的路径由/*变成 *.action试试看。
    在你要进入的方法里面打个断点。或者检查你的指向类或者result标签处理之后返回的页面。返回值看看是不是和你方法返回值一样。

    评论
    解决 无用
    打赏 举报
  • 更好的自己520 2017-12-29 02:43

    报404错误应该是你哪里的路径配置出问题了,你看看struts.xml中路径是否配置正确

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题