[Rumble-jp-dev] Re: 新環境で

Back to archive index

Naoki Kurosawa n-kur****@nri*****
2004年 3月 11日 (木) 15:06:18 JST


黒澤です。

> java.lang.NullPointerException
> 	at
> jp.ossc.tstruts.ExtendRequestProcessor.processSelectForward(ExtendRequestPro
> cessor.java:392)

がまだ起きているということなんですよね?

> 今の問題は
>   <action path="/RobotDetailIndex">
>    <forward  path="tiles.RobotDetailTop"/>
>   </action>
> じゃないかと思っているのですが、
> この記述で問題(NullPointerException)は起きないでしょうか?

・BLからは「どのforwardを実行するのかを返してやる手段がない」かつ、
・プロトタイプの時のように、必ずActionクラスを作ってその中からEJBを
  呼ぶのではなく、Strutsが直接BLを呼ぶ
ので、「どのforwardを実行するのか」を決定するためのforward-selectという
機能があります。
これは、BLからの戻りActionFormの内容によって判断します。


<action path="/RegisterUser"
    name="UserRegistrationForm"
    type="jp.ossc.tstruts.action.web.EJBAction"
    scope="request"
    input="failure"
    parameter="User#RegisterUser">
    <select-forward property="retMessage">
        <forward-value value="success" name="success"/>
        <forward-default name="failure"/>
    </select-forward>
    <forward name="success" path="tiles.UserRegistered"/>
    <forward name="failure" path="tiles.UserRegistrationForm"/>	
</action>

以上の記述は、ActionFormのretMessageというフィールドに"success"という
文字列が入っていたら
    <forward name="success" path="tiles.UserRegistered"/>
を実行し、それ以外は
    <forward name="failure" path="tiles.UserRegistrationForm"/>	
を実行します。

成功も失敗もなく、常にひとつの遷移先しかない場合、
<action path="/CategorizedRobots"
    name="CategorizedRobotsForm"
    type="jp.ossc.tstruts.action.web.EJBAction"
    scope="request"
    parameter="Robot#CategorizedRobots">
    <select-forward property="retMessage">
        <forward-default name="success"/>
    </select-forward>
    <forward name="success" path="tiles.CategorizedRobots"/>
</action>

というようにします。
これは、
select-forwardのpropertyに適当なフィールド(どうせ中身を見ないので
何でもいい。ここではretMessageフィールドを選択)を指定し、
<forward-default>要素のみを記述しています。
これで常にsuccessが実行されます。

というような感じで、<forward-select>要素を書けば解決すると思います。

To:松野さん
松野さんが担当してるところじゃないですか。
Stacktraceでぴぴっと来なきゃ。

--
Naoki Kurosawa <naoki_kuros****@ybb*****>, <n-kur****@nri*****>
Sharpen up JAVA skills. - Robocode Rumble-JP Project -
http://rumble-jp.sourceforge.jp/    http://robocode.ddo.jp/rumblejp/





Rumble-jp-dev メーリングリストの案内
Back to archive index