1

次のディレクトリ構造を持つ 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>

pathhttp://localhost:8080/StrutsPro/jsp/login.jspで実行すると、HTTP 404 になります。なぜですか?

4

6 に答える 6

1

代わりに web.xml を調べてください。

それ以外の場合は、すべての .jsp ファイルを WebContent フォルダーに入れます

于 2013-05-17T07:41:32.740 に答える
0

私はストラットが初めてで、同じエラーが発生しました。struts.xml の正しい構成を既に入れていますが、コンソールで 404 と共に UnableToLodaConfiguration エラーが発生します。ワークスペースをデスクトップから C:\ に移動するように誰かに勧められたところ、驚くべきことにそれが機能しました。

于 2013-05-14T05:53:26.930 に答える
0

404 ステータス コードは、実際には、指定された URL によるリソースが利用できないことを意味します。

サーバーからリソースを要求するには、ドキュメントに含まれるtaglib 定義が有効でコンパイル可能であることを確認してください。

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

URL で直接 JSP ページにアクセスしないでください。ディスパッチャーの結果を返すアクション構成を使用します。

<action name="UnderConstruction">
    <result>/UnderConstruction.jsp</result>
</action>
于 2013-05-13T22:54:01.380 に答える
0

この答えを試してください:

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

これがお役に立てば幸いです。

于 2013-05-13T10:28:33.857 に答える
0

コード構造によると、プロジェクトのルーフ フォルダーに index.jsp/html がありません。サーバーの実行中、デフォルトでは最初に index.html/jsp が検出されます。利用できない場合は、404 エラーが返されます。これを修正するには、web.xml ファイルに次の行を追加します。

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

すべての変更を保存し、サーバーを実行します。問題が再度発生する場合は、Struts 構成ファイルとビルド パスを確認する必要があります。

于 2013-05-13T06:32:46.320 に答える