2

新しいアクション クラスを作成して に追加しようとしましたがstruts.xml、アクション クラスは正常にコンパイルされましたが、Tomcat を実行すると、インデックス ページ自体に The requested resource is not available 404 エラーが表示されます。

CreateUser.jsp

<s:form action = "CreateUserAction" >
    <s:textfield name = "name" label = "Name" />
    <s:textfield name = "userName" label = "User Name" />
    <s:submit value = "Register" />
</s:form>

CreateUserAction.java

public String execute() {
    setMessage("Hello " + getUserName());
    return "SUCCESS";
}

Struts.xml

<package name="default" extends="struts-default">
    <action name="CreateUserAction" class="com.ecommerce.action.CreateUserAction">
    <result name="SUCCESS">/success.jsp</result>
    </action>
</package>
4

2 に答える 2

4

Struts2 のアクションは、構成から構築された URL にマップされます。リクエストの URL がアクション名と名前空間と一致する場合は実行されます。そうでない場合は、ディスパッチャによってエラー コード 404 が返されます。Struts2 はフィルターとして実装されており、その構成でマップされている要求を探しています。たとえば、すべての URL をフィルタリングする場合は、次のように記述します。web.xml

<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>

インデックス ページ自体にエラー 404 がある場合は、それに対応する URL と、構成によってその URL にマップされているアクションを自問する必要があります。構成とは何か、アクションを実行するために入力できる URL の詳細が必要な場合は、config-browser プラグインをインストールしてください。

于 2013-11-08T14:44:40.833 に答える
0

上記の問題について:「アクションクラスがstruts.xmlで構成されている場合、要求されたリソースはstruts2で利用できません」提案があります。

すべての外部 jar をフォルダー lib(WebContent-->WEB-INF-->lib) にコピー アンド ペーストします。ビルド パスからすべての外部 jar を削除します (プロジェクト -->buildpath-->Configure Build path)。

このソリューションは、Tomacat 7 を使用した Eclipse Luna で正常に機能することがわかりました

于 2015-05-06T09:54:59.530 に答える