[Seasar-user:2498] [S2JSF] f:paramによる引数指定の有無が混在するリンクの挙動

Kaisei HAMAMOTO hamamoto
2005年 8月 14日 (日) 05:27:37 JST


浜本と申します。

S2JSF1.0.4について質問があります。

1つのActionを複数の<a m:action="...">タグから呼び出す場合、
<span m:inject="f:param" ... >でパラメータを指定する記述と指定しない記述
を混在させると、指定しない方のリンクをクリックした際に例外が発生します。

例えば以下のようにtest.htmlとTestActionImpl.javaを用意した場合、

-- test.html ------------------

<html xmlns:m="http://www.seasar.org/maya">
<head></head>
<body>
  <a m:action="#{testAction.execute}">
    <span m:inject="f:param" m:name="id" m:value="#{100}"/>
    with param
  </a>
  <br/>
  <a m:action="#{testAction.execute}">without param</a>
</body>
</html>

-- TestActionImpl.java ---------

public class TestActionImpl implements TestAction {
    private Long id;
    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }
    public String execute() { return null; }
}

--------------------------------

"without param"のリンクをクリックした際に

org.seasar.framework.beans.IllegalPropertyRuntimeException:
[ESSR0059]クラス(action.impl.TestActionImpl)のプロパティ(id)の設定に失敗
しました。理由はjava.lang.NumberFormatException: For input string: ""

の例外が発生します。

なお、パラメータの型がStringの場合は例外は発生しません。また、
<a m:action="...">の代わりに<input type="submit" m:action="...">を用いた
ときも例外は発生しません。

この現象の対処法を教えていただけないでしょうか。
よろしくお願いいたします。




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