.log(ぽちろぐ)

退屈しているおっさんの日記

Struts2 chain アクション→アクションのパラメータ引き継ぎ

    journal.mycom.co.jp
    【特集】実践サンプルで学ぶStruts 2 - 生まれ変わった定番フレームワークを徹底解説 > アクションで生成した動的な値を、chainしたアクションで参照する方法
    に掲載されているサンプルを、改して動かそうとして???となる人(俺)の役に立つはず。

     No result defined for action [アクション名] and result input.
    とかいうメッセージが出てびびる。

     どうやら、Struts2でchainするときには
    @Result(value="遷移先.jsp")
    を書かなくてはいけないよ!
    struts.xml抜粋
    【errorのときは、UserMstSearch.actionにchainするぜ!】
    <result name="error" type="chain">
        UserMstSearch
    </result> 
    
    chain先のUserMstSearch.java 【chainされたactionを実行するぜ!】
    import org.apache.struts2.config.Result;
    @Result(name="success", value="userMstSearch.jsp")//アノテーションはクラス宣言の前に書くんだぜ!
    public class UserMstSearch{
        //以下いろいろ書いておく
    }
    
    と、書いておけば、
    1. struts.xmlに定義したUserMstSearch.actionの指定メソッドを実行し、
    2. chain元のアクションクラスが持ってるprivate変数を引き継いで、
    3. chain先のアクションクラスが持ってる同名のprivate変数に、セットできる。
    4. つまり、chain先のアクションクラスの正常遷移先.jspで、chain元の処理結果を表示できる寸法だ。
    5. そのためのセッターゲッターは用意しておくように!。
     と、こういったTipsを、web全体で集合知として蓄積していけば、新しいプロジェクトはStruts2で!と言う人も増えるんじゃないの?(Struts1を使いたくない俺)。
    ≪関連記事≫
     アノテーションってなんだよ!
    さくっとStruts2を始めるならこれもいいかな?
     ITの現場 > Javaの現場 > Struts2の現場