[Seasar-user:13123] [SAStruts]JSTLの fn:join で例外

出羽 健一 [E-MAIL ADDRESS DELETED]
2008年 3月 3日 (月) 14:55:06 JST


出羽です。

SAStrutsでJSTLを使ってJSPに以下のようなコードを書くと、
  <%
  String[] fuga = {"aaa", "bbb", "ccc"};
  request.setAttribute("fuga",fuga);
  %>
  ${fn:join(fuga, '=')}

結果が「aaa=bbb=ccc」のようになります。


同様のことをActionのプロパティで試してみました。
[Action側]
  public String[] hoge = {"aaa", "bbb", "ccc"};

[JSP側]
  ${fn:join(hoge, '=')}

すると、以下のような例外になります。
 致命的: サーブレット default のServlet.service()が例外を投げました
java.lang.IllegalArgumentException: Cannot convert [aaa, bbb, ccc] of type class org.seasar.struts.action.ArrayWrapper to class [Ljava.lang.String;
	at org.apache.el.lang.ELSupport.coerceToType(ELSupport.java:374)
	at org.apache.el.parser.AstFunction.getValue(AstFunction.java:102)
	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:923)
 <<以下省略>>


上記の内容について、JSTLを使う際に制約があるのか、
それともバグなのかを教えて頂きたいので、
よろしくお願いします。




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