0

struts2 アプリケーションを実行できません。私はEclipse indigo IDE、Tomcat 7、およびjdk 1.7を使用しています。

私が含めたjarファイルは次のとおりです。

  • commons-logging-1.0.4.jar、
  • フリーマーカー-2.3.8.jar、
  • ognl-2.6.11.jar、
  • struts2-core-2.0.11.jar、
  • xwork-2.0.4.jar

struts.xmlin classes フォルダーをに配置WEB-INFし、フォルダーにも配置しようとしまし
srcたが、作成できませんでした。コンソールに以下のエラーが表示されます

There is no Action mapped for namespace / and action name tutorial. - [unknown    location]

index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">  
    <title>Insert title here</title>  
</head>  
<body>  
    <form action="./tutorial.action">  
        Username: <input type="text" />  
        <input type="submit" value="Submit" />  
    </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" extends="struts-default">
        <action name="tutorial" class="com.test.TutorialAction">
            <result name="success">/success.jsp</result>
            <result name="failure">/failure.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>Struts2Starter</display-name>
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> 
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    </web-app>

TutorialAction.java

package com.test;   

public class TutorialAction {   
    public String execute() {
        System.out.println("Hello from execute");   
        return "success";   
    }
}
4

5 に答える 5

3

他の人が指摘しているように、マッピングにはgetTutorialアクションはなく、「チュートリアル」のみが含まれています。ただし、それをスキップして、Struts2アプリの健全性チェックの方法を学ぶことをお勧めします。新しいテクノロジーをセットアップするときはいつでも、慣れ親しんだテクノロジーを使用しているときでも、基本的な健全性チェックの方法を理解することは非常に役立ちます。この場合、strutsxmlが正常に実行されたことを確認する必要があります。解析され、フレームワークはユーザーのアクションを認識します。

Struts 2ConfigBrowserプラグインをStruts2アプリに追加することを強くお勧めします。プラグインを追加するには、jarを取得し(すべてのstruts 2プラグインはjarです)、Webアプリケーションのlibディレクトリに配置します。それでおしまい。アプリケーションを開始するときは、次のURLを押してください。

http://localhost:8080/starter/config-browser/index.action

また、フレームワークが認識しているすべてのアクションとその他の構成が表示されます。Essentials struts 2診断ツールであり、使いやすく、使用しないことはできません。

于 2012-12-21T16:03:22.487 に答える
0

サーバーが struts.xml の正しいパスを見つけることができないため、エラーが発生します。struts.xml を src フォルダーまたは WEB-INF/classes と並行して配置することをお勧めします。

于 2014-04-21T09:58:55.777 に答える
0

私は同じ問題を抱えていて、これについて複数の投稿を見ました....ここに可能な解決策があります

すべてのアクションを正確にマッピングしたと確信していましたが、上記と同じエラーが表示されていました..そのため、プロジェクトをクリーンアップしてから再度実行しました..完全に正常に機能しました...試してみてください!

私はこれに何度も遭遇しました...そのようなことを避けるために、ショートカットアイコンのプロパティに「../eclipse.exe -clean」を追加しました....これは機能し、そのような種類の取得を忘れることができます実際にはエラーではないエラー....!

于 2013-06-01T22:13:21.237 に答える
0

ファイルの要素にnamespace属性を追加してみてください。packagestruts.xml

このような:

<struts>
<package name="default" extends="struts-default" namespace="/">
    <action name="tutorial" class="com.test.TutorialAction">
        <result name="success">/success.jsp</result>
        <result name="failure">/failure.jsp</result>
    </action>
</package>
</struts>
于 2012-12-21T07:26:19.947 に答える