【问题标题】:404 when running project through eclipse on Tomcat在Tomcat上通过eclipse运行项目时出现404
【发布时间】:2013-05-07 02:23:27
【问题描述】:

我有一个具有以下目录结构的 Struts 2 项目。但是当我尝试在 Tomcat 7 上使用 Eclipse 运行这个项目时,它给了我 404 错误。

Struts.xml:

<?xml version="1.0" encoding="UTF-8"?>

<struts>
  <action name="login" class="com.actions.LoginAction" method="execute">
     <result name="success">/jsp/login.jsp</result>  
  </action>
</struts>

login.jsp:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login Page</title>
</head>
<body>
  <s:form action="login" method="post">
  Login name : <input type="text" value="name"/>
  </s:form>
</body>
</html>

在路径 http://localhost:8080/StrutsPro/jsp/login.jsp 上运行时,它给出了 HTTP 404,为什么?

【问题讨论】:

    标签: java struts2 struts http-status-code-404 web-project


    【解决方案1】:

    改为检查 web.xml。

    否则将所有 .jsp 文件放在 WebContent 文件夹中

    【讨论】:

      【解决方案2】:

      根据您的代码结构,您的项目屋顶文件夹中没有 index.jsp/html。在运行服务器时,它会默认首先找到 index.html/jsp。如果它不可用,它将返回 404 错误。要解决此问题,您可以在 web.xml 文件中添加以下行,

      <welcome-file-list>
      <welcome-file>/jsp/login.jsp</welcome-file>
      </welcome-file-list>
      

      保存所有更改并运行您的服务器。如果问题再次存在,您必须检查 Struts 配置文件和构建路径。

      【讨论】:

      • 我做了这些更改,但现在出现了这个错误: •没有为命名空间 [/] 和与上下文路径 [/StrutsPro] 关联的动作名称 [] 映射的动作。
      【解决方案3】:

      你的项目真的很奇怪。

      顺便说一句,你必须:

      • 在你的 struts.xml 中声明一个&lt;package&gt;;动作不会直接进入&lt;struts&gt; 元素;

      • 为该包提供 "/StrutsPro" 命名空间;

      • LoginAction 中声明一个检查用户凭据的方法(然后execute() 将打开由用户填写的 JSP 页面,例如 tryToLogin() 将接收来自 POST 的数据并尝试根据数据库验证它们);或者,您可以使用两种方法指定两个不同的 Action 而不是一个 Action,这取决于您;

      • 在您的&lt;s:form&gt; 中放置一个&lt;s:submit /&gt; 按钮,以将数据发送到登录方法/操作;

      • 调用指向您的操作的 url,而不是指向您的 JSP。 JSP 是视图,它总是由控制器返回,在 Struts2 中是 Action。您运行 Action,Action 会为您提供评估的 JSP。您不运行 JSP。

      例如,您应该调用:http://localhost:8080/StrutsPro/login.actionhttp://localhost:8080/StrutsPro/login.do,根据您在 web.xml

      中为 Actions 提供的扩展名

      【讨论】:

        【解决方案4】:

        试试这个答案:

        login.jsp

        <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Login Page</title>
        </head>
        <body>
          <s:form action="login" method="post">
                   Login name : <s:textfield name="name"/> 
                   <s:submit value="Click Me" name="Click Me"></s:submit>
          </s:form>
        </body>
        </html>
        

        struts.xml

        <?xml version="1.0" encoding="UTF-8"?>
        <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
        <struts>
        <package name="default" namespace="/" extends="struts-default">
        <action name="login"  class="com.actions.LoginAction">
        <result name="success">/jsp/login.jsp</result>  
        </action>
        </package>
        </struts> 
        

        LoginAction.java

        private String name;
        
        //Create setter and getter methods for NAME.
        
        public String execute(){
          return SUCCESS;
        }
        

        您可以保存所有更改并重新启动服务器。要访问该页面,您输入 url http://localhost:8080/StrutsPro/login.action

        希望对你有帮助。

        【讨论】:

          【解决方案5】:

          我是 struts 新手,我遇到了同样的错误。与 404 一起,在控制台中,它有 UnableToLodaConfiguration 错误,尽管我已经放置了 struts.xml 的正确配置。有人建议我将我的工作区从桌面重新定位到 C:\ 并且令人惊讶的是它起作用了。

          【讨论】:

          • 这并不奇怪; Desktop 路径的名称中可能有一个空格,这有时会导致 Tomcat 和其他 Java 类的东西消失。
          【解决方案6】:

          404 状态码实际上意味着给定 url 的资源不可用。

          要从服务器请求资源,请确保其有效且可编译,并将 taglib definitions 包含在文档中。

          <%@ taglib prefix="s" uri="/struts-tags" %>
          

          您不应直接在 URL 中访问 JSP 页面。使用返回调度程序结果的action configuration

          <action name="UnderConstruction">
              <result>/UnderConstruction.jsp</result>
          </action>
          

          【讨论】:

            猜你喜欢
            • 2014-12-02
            • 1970-01-01
            • 2021-08-17
            • 2014-04-30
            • 1970-01-01
            • 1970-01-01
            • 2011-10-09
            • 2011-02-05
            • 2013-01-01
            相关资源
            最近更新 更多