2017-01-24 18 views
2

別のクラスにredirectActionを実行し、そのクラスの特定のメソッドを呼び出そうとしています。
基本的に、ユーザーがテーブル内のセル内の「編集」リンクを押すと、そのオブジェクトが取得され、 がSessionに挿入され、Editorクラスが呼び出され、セッションからそのオブジェクトを取得するメソッドが呼び出されますエディタに表示することができます。Struts2 2.1から2.5へのアップグレード

これは私の先人たちがずっと前にシステムを書いたやり方であり、できるだけ構造的な変更を少なくすることを望んでいます。

2.5にアップグレードすると、すべてが壊れます。
我々はmethodパラメータにそれを絞り込むました:

<result name="editSingle" type="redirectAction"> 
    <param name="actionName">productEdit</param> 
    <param name="method">getFromSession</param> 
</result> 

我々はこれを実行すると、我々は

は "何のアクションマッピングさはありません..."

メッセージが表示されます。
<param name="method">行をコメントアウトすると、それはもはや失敗しませんが、もはや指定しなくなったメソッドには決して到達しません。 redirectActionのドキュメントにはいくつかのパラメータが記載されていますが、methodはその中にはありません。ですから、私の質問は2つです:

1)2.1から2.5へのマイグレーション旅行で実際に削除されたのでしょうか?

2)この削除をどのように処理していますか?私たちはこれに遭遇した唯一の人になることはできません。

+0

[this](issues.apache.org/jira/browse/WW-4540)(例:https://cwiki.apache.org/confluence/display/WW/Action+Configuration#ActionConfiguration-StrictMethodInvocation)です。 。それを試して修正するかどうかを確認してください。この作業にXML定義のメソッドが含まれているかどうかはわかりません。 –

+0

@DaveNewton、提案に感謝しますが、解決策ではありません。私はにメソッドを追加しましたが、結果は同じでした。ドキュメントでは、redirectActionページには、 actionName、namespace、suppressEmptyParameters、parse、anchorの各パラメータがあります。どこでも "メソッド"は言及されていないので、メソッドを指定することはできません。 – Tom

答えて

関連する問題