0

search.jsp ファイルへのリンクを含む index.jsp ファイルを表示する struts アプリを作成したいと考えています。Struts 1.2 アプリのディレクトリ構造は次のとおりです。

Struts 1.2 ディレクトリ リスト

ここに画像の説明を入力

web.xmlの内容は以下の通り

      <display-name>MiniHR</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>  
  <jsp-config>
   <taglib>
    <taglib-uri>http://struts.apache.org/tags-html</taglib-uri>
    <taglib-location>/WEB-INF/lib/struts-html.tld</taglib-location>    
  </taglib>
   </jsp-config>
   <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.</url-pattern>
    </servlet-mapping>
   <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
</web-app>

struts-config.xmlの内容は以下の通り

<global-forwards>
    <forward name="search" path="/search.jsp"></forward>
</global-forwards>

index.jspの内容は以下の通り

<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<body>
    Add Employee<html:link forward="search">Search Employees</html:link>
</body>

このアプリをEclipseで実行すると、HTTPステータス500が表示されます-以下のように

ここに画像の説明を入力

私はいくつかの解決策を試しましたが、問題を解決するものは何もないようです.少し助けていただければ幸いです.

次の URL に war ファイルを追加しました。

http://www.fileconvoy.com/dfl.php?id=g6daddfa41e8981249992832312c465146f9b6bc45

ありがとうございました

4

2 に答える 2

1

html:linkタグ属性がforward間違っています。

Strutslinkタグ仕様によると:

forward - 検索されるグローバル ActionForward の名前としてこの属性の値を使用し、そこにあるモジュール相対またはコンテキスト相対 URI を使用します。転送がモジュール相対の場合、ページではなくアクションを指している必要があります。

したがって、グローバル フォワードは、ページではなく Struts アクションを指す必要があります。

これで問題が解決することを願っています。

ここで関連する例を参照してください。

于 2013-05-09T06:29:46.830 に答える
1

Struts は、すべてのリクエストが Struts ActionServlet を通過すると想定していますが、これは明らかに構成していません。servlet-mapping を使用して Struts サーブレットをセットアップします*.do

<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

struts.xml次に、ビューにリダイレクトするいくつかのアクション マッピングを定義する必要があります。JSP で struts タグを使用している場合、JSP に直接アクセスすることはできません。

編集

新しいweb.xmlコンテンツで質問を更新したため、上記はカバーされています。ただし、JSP に直接アクセスすることはまだできません。ビューに転送するアクション マッピングを追加する必要があります。

于 2013-05-09T05:00:00.520 に答える