[Seasar-user:14199] Re: [s2struts]<s2struts:link>で生成されたリンク

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2008年 5月 15日 (木) 19:41:45 JST


中村(taedium)です。

> <s2struts:link>を使用して生成したリンクをブックマーク登録して
> 再度アクセスできるようにしたいと考えています。
> [例]
> <s2struts:link action="#{hogeAction.goMoge}" cancel="true">
>  リンク
> </s2struts:link>
> 
> しかしTomcatを起動してすぐブックマークから実行すると
> 以下のExceptionが発生してしまいます。
> java.lang.IllegalArgumentException: The path of an ForwardConfig cannot be null
> 一度、<s2struts:link>を記述してあるページを読み込むと発生しなくなります。

現在の<s2struts:link>の仕組みでは、
一度画面をレンダリングした後でなければ
<s2struts:link>で生成されるリンクにアクセスできません。
画面のレンダリング時に
呼び出し先のActionのメソッドを記憶するようになっているからです。


代替策ですが、Strutsの<html:link>を使ってパラメータでメソッドを
指定するのはどうでしょうか。

無設定Strutsを使っている場合は、Actionのクラス(インタフェース)
で次のように@StrutsActionのparameter属性に値を指定します。

  @StrutsAction(parameter = "method")
  public class HogeAction {
  }

JSPでリンクの定義は次のようにします。

  <html:link action="/hoge?method=goMoge">


<s2struts:link>の現在の挙動は見直して
画面をレンダリングしなくても生成したリンクに
アクセスできるようにしたいと思います。
-- 
Nakamura Toshihiro <[E-MAIL ADDRESS DELETED]>



Seasar-user メーリングリストの案内