Struts2の2.5.16ワイルドカード404に報告アクションメソッドを呼び出します

問題の1説明

add()メソッドで設定アクションは仕方struts.xmlワイルドカードを使用してコールにアクセスする  にhttp:// localhost:8080 / Struts2Demo / helloworld_add.actionの時間を、おなじみのエラーが発生しました:

HTTPステータス404 - 見つかりませんでした


タイプ  ステータスレポート

メッセージは、  名前空間のマッピングされた何のアクションがありません[/]とアクション名[helloworld_add]コンテキストパスに関連付けられている[/ Struts2Demo]。

説明  オリジンサーバは、ターゲット・リソースの現在の表現が見つからないか、それが存在することを開示して喜んではありませんでした。


Apache Tomcatの/ 8.5.35

 

2、関連するコード

struts.xml関連するコード部分

< パッケージ= "デフォルト" 名前空間は= "/"が延び= "ストラットデフォルト" > 
        < アクション= "helloworld_ *" 方法= "{1}" クラス= "com.icheny.action.HelloWorldAction" > 
            < 結果> /result.jsp </ 結果> 
            < 結果= "追加" > /{1}.jsp </ 結果> 
            < 結果= "更新"を> /{1}.jsp </ 結果> 
        </ アクション>
</ パッケージ>

HelloWorldAction.java関連するコード部分

    公共の文字列の追加()
    { 
        リターン「追加」; 
    } 

    パブリック文字列の更新()
    { 
        リターン「更新」; 
    }

 

3つの理由

  次のレベルへの安全性のStruts2の2.5バージョン、ワイルドカードの使用を禁止するので、すべての無担保アクセスはstruts.xmlで宣言することができるようにする必要があります。したがって、私は2.5.16ストラットのバージョン、およびこの間違いの出現を使用しています。

 

4.ソリューション

  パッケージに属性を追加します。厳格な法-呼び出し=「false」に

  の変更後のコードのstruts.xmlパッケージ部分:

< パッケージ=「デフォルト」の名前空間=「/」延び=「ストラットデフォルト」厳密・メソッド呼び出し=「偽」> 
        < アクション=「helloworld_ *」方法=「{1}」クラス= "com.icheny .action.HelloWorldAction」> 
            < 結果> /result.jsp </ 結果> 
            < 結果= "追加" > /{1}.jsp </ 結果> 
            < 結果= "更新"> /{1}.jsp </ 結果> 
        </ アクション> 
</ パッケージ>

  別の訪問にhttp:// localhost:8080 / Struts2Demo / helloworld_add.action、通常のジャンプ:

 

          

 

おすすめ

転載: www.cnblogs.com/iCheny/p/10963050.html