[Seasar-user:5540] Re: [S2JSF+Teeda] 複数のforEach構文における参照が不正になる

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2006年 12月 20日 (水) 09:31:50 JST


米林です。

以下の件、調査してみます。
ちなみに、補助変数名が "e" の時のみ現象が
発生するという事でしょうか?

From: "Kaisei HAMAMOTO" <[E-MAIL ADDRESS DELETED]>
Sent: Wednesday, December 20, 2006 3:50 AM

> 浜本です。
>
> S2JSF1.1.0 を引き続き試用中ですが、以下のような問題が発生します。
>
> 【症状】
> 『同一の補助変数名を使った複数の forEach 構文』及び『サブミットボタン』を
> 組み合わせたページにおいて、forEach 構文の補助変数参照が不正となる場合がある。
>
> 【再現例】
> 1. s2jsf-example 1.1.0 を起動する。
> 2. /src/main/webapp/foreach2/forEach2List.html 内に以下の記述を加える。
>
> <span m:inject="s:forEach" m:items="#{forEachDtoList}" m:var="e">
>   <span m:rendered="#{e.key != null}">
>     <span m:value="#{e.key}"/>
>   </span>
> </span>
>
> ※ 補助変数名を "e" 以外にすると再現しません。
>
> 3. ブラウザから "ForEach2" メニューにアクセスする。
> 4. "add row" ボタンを 1 回クリックし、表示要素を 1 つ追加する。
> 5. "delete3" 桁のチェックボックスを 1 つ以上選択し、"update" ボタンを
> クリックする。
> 6. 以下の例外が発生する。
>
> org.seasar.framework.beans.PropertyNotFoundRuntimeException:
>   [ESSR0065]クラス(examples.jsf.dto.ForEach2Dto)のプロパティ(key)が見つかりま
せん
>
org.seasar.framework.beans.impl.BeanDescImpl.getPropertyDesc(BeanDescImpl.java:1
26)
> org.seasar.jsf.el.S2PropertyResolver.getProperty(S2PropertyResolver.java:202)
> org.seasar.jsf.el.S2PropertyResolver.getValue(S2PropertyResolver.java:56)
>
org.seasar.teeda.core.util.PropertyResolverUtil.getValue(PropertyResolverUtil.ja
va:32)
>
org.seasar.teeda.core.el.impl.commons.ComplexValueReplacer$JsfPropertySuffix.eva
luate
> (ComplexValueReplacer.java:128)
> org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)
>
org.apache.commons.el.BinaryOperatorExpression.evaluate(BinaryOperatorExpression
.java:154)
> org.seasar.teeda.core.el.impl.commons.CommonsExpressionProcessorImpl.evaluate
> (CommonsExpressionProcessorImpl.java:92)
>
org.seasar.teeda.core.el.impl.ValueBindingImpl.getValue(ValueBindingImpl.java:68
)
>
javax.faces.component.UIComponentBase.getValueFromBinding(UIComponentBase.java:1
94)
> javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:164)
> javax.faces.webapp.UIComponentTag.isSuppressed(UIComponentTag.java:330)
> javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:169)
>
org.seasar.jsf.processor.TagProcessorImpl.processTag(TagProcessorImpl.java:224)
> org.seasar.jsf.processor.TagProcessorImpl.process(TagProcessorImpl.java:217)
> org.seasar.jsf.processor.ElementProcessor.process(ElementProcessor.java:93)
>
org.seasar.jsf.processor.TagProcessorImpl.processChildren(TagProcessorImpl.java:
269)
>
org.seasar.jsf.processor.TagProcessorImpl.processTag(TagProcessorImpl.java:225)
> org.seasar.jsf.processor.TagProcessorImpl.process(TagProcessorImpl.java:217)
> org.seasar.jsf.processor.TagProcessorImpl.process(TagProcessorImpl.java:196)
>
org.seasar.jsf.processor.TagProcessorImpl.processChildren(TagProcessorImpl.java:
269)
> org.seasar.jsf.processor.InsertProcessor.process(InsertProcessor.java:83)
> org.seasar.jsf.processor.InsertProcessor.process(InsertProcessor.java:73)
>
org.seasar.jsf.processor.TagProcessorImpl.processChildren(TagProcessorImpl.java:
269)
>
org.seasar.jsf.processor.TagProcessorImpl.processTag(TagProcessorImpl.java:225)
> org.seasar.jsf.processor.TagProcessorImpl.process(TagProcessorImpl.java:217)
> org.seasar.jsf.processor.ElementProcessor.process(ElementProcessor.java:93)
>
org.seasar.jsf.processor.TagProcessorImpl.processChildren(TagProcessorImpl.java:
269)
>
org.seasar.jsf.processor.TagProcessorImpl.processTag(TagProcessorImpl.java:225)
> org.seasar.jsf.processor.TagProcessorImpl.process(TagProcessorImpl.java:217)
> org.seasar.jsf.processor.ElementProcessor.process(ElementProcessor.java:93)
>
org.seasar.jsf.processor.TagProcessorImpl.processChildren(TagProcessorImpl.java:
269)
>
org.seasar.jsf.processor.TagProcessorImpl.processTag(TagProcessorImpl.java:225)
> org.seasar.jsf.processor.TagProcessorImpl.process(TagProcessorImpl.java:217)
> org.seasar.jsf.processor.ElementProcessor.process(ElementProcessor.java:93)
>
org.seasar.jsf.processor.TagProcessorImpl.processChildren(TagProcessorImpl.java:
269)
>
org.seasar.jsf.processor.TagProcessorImpl.processTag(TagProcessorImpl.java:225)
> org.seasar.jsf.processor.TagProcessorImpl.process(TagProcessorImpl.java:217)
> org.seasar.jsf.processor.ElementProcessor.process(ElementProcessor.java:93)
>
org.seasar.jsf.processor.TagProcessorImpl.processChildren(TagProcessorImpl.java:
269)
>
org.seasar.jsf.processor.TagProcessorImpl.processTag(TagProcessorImpl.java:225)
> org.seasar.jsf.processor.TagProcessorImpl.process(TagProcessorImpl.java:217)
> org.seasar.jsf.processor.ElementProcessor.process(ElementProcessor.java:93)
>
org.seasar.jsf.processor.TagProcessorImpl.processChildren(TagProcessorImpl.java:
269)
>
org.seasar.jsf.processor.TagProcessorImpl.processBodyTag(TagProcessorImpl.java:2
43)
> org.seasar.jsf.processor.TagProcessorImpl.process(TagProcessorImpl.java:213)
> org.seasar.jsf.processor.TagProcessorImpl.process(TagProcessorImpl.java:196)
> org.seasar.jsf.processor.ViewProcessor.process(ViewProcessor.java:174)
> org.seasar.jsf.processor.ViewProcessor.process(ViewProcessor.java:172)
> org.seasar.jsf.runtime.ViewRendererImpl.renderView(ViewRendererImpl.java:102)
> org.seasar.jsf.application.S2ViewHandler.renderView(S2ViewHandler.java:123)
> org.seasar.jsf.lifecycle.LifecycleImpl.render(LifecycleImpl.java:197)
> javax.faces.webapp.FacesServlet.service(FacesServlet.java:100)
> examples.jsf.util.RequestDumpFilter.doFilter(RequestDumpFilter.java:66)
> org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:62)
>
org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilt
er.java:63)
>
org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilte
r.java:122)
>
> 以上、よろしくお願いいたします。

---
米林 正明
[E-MAIL ADDRESS DELETED]




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