0

WebContentフォルダーにすべてのjspページ(例:index.jsp)があり、アプリケーションはスムーズに動作しています。ここで、WebContent内に「pages」フォルダーを作成し、そこにすべてのjspページを転送しました。

そして、<struts>タグ内に次の行を追加しました。

<constant name="struts.convention.result.path" value="/pages" />

それでも、「pages」フォルダ内でjspを検索することはありません。私は得ています:

HTTPステータス404-/MyApplicationName/index.jsp

どこでミスをしているの?

編集:私のアプリケーションの現在の構造は次のとおりです:

ウェルカムページは、jspページではなくアクションです。このアクションの結果ページはindex.jspです。このアクションにより、ドロップダウンメニューとindex.jspの他のいくつかのフィールドにデータが入力されます。ここで、index.jspを他のjspページと一緒に「WebContent/pages」フォルダーに保持したいと思います。アプリケーションに30を超えるjspページがあり、result-tagにすべてのjspのフルパスを記載したくありません。そのため、struts2定数「struts.convention.result.path」を使用したいと思います。

私の質問は、なぜ私が上で述べたコードが機能しないのかということです。

4

3 に答える 3

1

直接アクセスindex.jspすると、すべてのS2要求処理がバイパスされます。

S2またはS2コンベンションプラグインは含まれていません。JSPページにアクセスしているだけです。

于 2013-01-02T16:47:33.287 に答える
0

おそらくあなたの間違いは struts.xml にありました。

同じ名前(フォルダ名)でnew-Folderアンダーメイクを作成する場合web-content

xml file under srcstruts.xmlそれをファイルに含めると、正常に動作します。

例: example folderweb-content の下に作成したと仮定して、example.xml ファイルを作成します。

src フォルダーの下と struts.xml ファイルに example.xml を含めます

例.xml:

<struts>

    <package name="example" namespace="/example" extends="default">
     <action name="your action name" class="your class" method="your method">
     </action> 
</package>
</struts>

struts.xml:

<struts>

<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />

<action  name="" class="" method="">
</action>
</package>

<include file="example.xml"/>

于 2013-01-03T11:29:32.063 に答える
0

アプリケーションの最初のページの場合、web.xml のタグでindex.jspそのパスを /pages/index.jsp に変更する必要があります。<welcome-file>あとは@Dave Newtonに同意します:)

于 2013-01-03T06:00:33.013 に答える