2011-07-19 6 views
1

strutsアプリケーションを使用してApache Tomcatサーバーをセットアップしようとしています。問題は、プロジェクトのディレクトリ構造が正しくマッピングされていなかったことです。私はそれを更新し、私のサーバーを起動しようとすると問題に遭遇しました。私のフォルダ構造は以下の通りです。EclipseのStruts.xmlパッケージの名前空間

enter image description here

私は別のフォルダにJSPファイルのすべてを移動した変更の主なものは、彼らがWebコンテンツフォルダにちょうど直接最初にありました。私の問題は今私が変更する必要があったのは、 "/"がWebコンテンツフォルダを指し、JSPを追加すると "/ jsp"にstruts.xmlのパッケージのデフォルト名前空間(作成した唯一のもの)右のフォルダしかし、そうではないようです。 "名前空間"/"とアクション名" mainDashboardHome "にマッピングされたアクションはありません"というエラーが表示されます。 (サーバーのクリーニング、FFキャッシュのクリア、Eclipseの再起動を試しました)、パッケージの名前空間を変更したことさえわかりませんでした。私のweb.xmlはstruts2へのすべてのURLパターンをフィルタリングする超基本的なものです。私が考えることができるのはWelcom-file-listです:Welcome.jspのリダイレクトは以下のコードを変更する必要があります。それを何に変更するか分からない。また

<%@ page contentType="text/html; charset=UTF-8"%> 
<%@ taglib prefix="s" uri="/struts-tags"%> 
<html> 
<head> 
</head> 
<body> 
    <% response.sendRedirect("mainDashboardHome.action"); %> 
</body> 
</html> 

(SRCフォルダにある)ダッシュボードアクションと私のstruts.xmlパッケージ定義の開始:

<struts> 
... 
<package name="default" extends="struts-default" namespace="/jsp"> 
... 
<action name="mainDashboardHome" method="mainDashBoard" 
     class="mainDashboard.Action.ApplicationRouteAction"> 
     <result name="success">test.jsp</result> 
     <result name="error">Login.jsp</result> 

    </action> 
+1

リダイレクトはstruts.xmlで処理する必要がありますが、このようなページは作成しないでください。コンベンションプラグインを使用することを検討してください、それはあなたに多くの時間を節約します。 jspでURLを構築する必要がある場合は、struts2 urlタグを使用してください(正しいアプリケーションコンテキストでURLが作成されます)。 – Quaternion

答えて

3

ここには名前空間とアクション名はありませんあなたの行動やJSPファイルの場所に惹かれてください(私はそれをD:D:Dとします)。名前空間とアクション名は主にクライアントがURLをどのように見えるかに影響します。アクション・ファイルとJSPファイルは、あなたのケースであなたのstruts.xml

で指定することになっているあなたは、あなたのJSPを移動したことから、ユーザーは.../JSP/mainDashboardHome.action

としてmainDashboardHomeのURLが表示されますあなたの結果のタグの内容にフォルダが表示されない場合は、jspファイルの場所の設定(<result name="success/error">wherever_your_jsp_is.jsp</result>)を変更する必要があります。

ここでは、トラブルシューティングの手順を示します: 1.変更あなたがURLをどのようにしたいかによって決まります) 2.結果タグ内のjspの場所を変更するあなたのjspファイルを保存した場所にコピーしてください。

そして、メモとして、response.sendRedirect( "mainDashboardHome.action");を付ける必要はありません。あなたのJSPの中に。代わりにstruts.xmlでこれを行うことができます:

<action blablabla> 
    <result name="anotherblablabla" type="redirectAction"> 
     <param name="namespace">/</param> 
     <param name="actionName">mainDashboardHome</param> 
    </result> 
</action> 
1

どちらかがnamespace="/"に名前空間を変更したり、ブラウザから/jsp/(action-name)を呼び出す

編集:さらに詳しい情報はStruts Namespaces

+0

namespace = "/"は必要ありません。 –

+0

真。上記の名前空間でアクションが見つからない場合は、自動的に "/"に戻ります。 –

関連する問題