下記のように、同じ名前で値の違う複数のパラメータを送ったとき、
http://suz-lab.blogspot.com/2008/10/jquerygetjsonp2v21.html
サーバ側(SAStruts)でどう取得するか?についてです。
まあ、下記のように配列を使うことで、
簡単に実現することができ、非常に直感的です。
-------- リクエスト
hoge/receive?hoge=1&hoge=2
-------- コード
public class HogeAction {
public String[] hoge;
@Execute(validator = false)
public String receive() {
System.out.println("##############" + hoge[0]);
System.out.println("##############" + hoge[1]);
return null;
}
}
-------- 結果
##############1
##############2
ただ、値が数字ということで、
public int[] hoge;
とすると、以下のような例外が発生します。
--------
org.seasar.framework.beans.IllegalPropertyRuntimeException:
[ESSR0059]クラス(suz.example.sastruts.action.HogeAction)
のプロパティ(hoge)の設定に失敗しました。理由は
org.seasar.framework.beans.IllegalPropertyRuntimeException:
[ESSR0059]クラス
(suz.example.sastruts.action.HogeAction$$EnhancedByS2AOP$$8b8a47)
のプロパティ(hoge)の設定に失敗しました。理由は
org.seasar.framework.exception.SIllegalArgumentException:
[ESSR0094]IllegalArgumentExceptionがクラス
(suz.example.sastruts.action.HogeAction)の型
(class [I)のフィールド(hoge)に
型([Ljava.lang.String;)の値([Ljava.lang.String;@bcb23e)
を設定するときに発生しました。対象のクラスは
(suz.example.sastruts.action.HogeAction$$EnhancedByS2AOP$$8b8a47)
です。
--------
public Integer[] hoge;
としても、ほぼ同様の例外が発生します。
--------
org.seasar.framework.beans.IllegalPropertyRuntimeException:
[ESSR0059]クラス(suz.example.sastruts.action.HogeAction)
のプロパティ(hoge)の設定に失敗しました。理由はorg.seasar.framework.beans.IllegalPropertyRuntimeException:
[ESSR0059]クラス
(suz.example.sastruts.action.HogeAction$$EnhancedByS2AOP$$8b8a47)
のプロパティ(hoge)の設定に失敗しました。理由はorg.seasar.framework.exception.SIllegalArgumentException:
[ESSR0094]IllegalArgumentExceptionがクラス
(suz.example.sastruts.action.HogeAction)の型
(class [Ljava.lang.Integer;)のフィールド(hoge)に
型([Ljava.lang.String;)の値([Ljava.lang.String;@bcb23e)
を設定するときに発生しました。対象のクラスは
(suz.example.sastruts.action.HogeAction$$EnhancedByS2AOP$$8b8a47)
です。
--------
これで、jQueryとSAStrutsがかなりつながってきたぞ!
0 コメント:
コメントを投稿