[Seasar-user:1892] Re: S2JSFの2重のforEachについて
ANC04864@NIFTY.NE.JP
ANC04864
2005年 4月 28日 (木) 15:24:50 JST
ごうぎと申します。
本件について、調べてみると不具合のようです。
多重ループが処理されるように以下のパッチを作ってみました。
もう少し上手い方法があるかもしれませんが、ご参考になれば幸いです。
以上、宜しくお願いします。
---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---
--- s2jsf/src/org/seasar/jsf/component/ForEach.java.org 2005-04-27 00:21:37.057232000 +0900
+++ s2jsf/src/org/seasar/jsf/component/ForEach.java 2005-04-28 15:16:01.944065600 +0900
@@ -207,9 +207,15 @@
for (int i = 0; i < children.size(); ++i) {
UIComponent child = (UIComponent) children.get(i);
if (child instanceof EditableValueHolder) {
- EditableValueHolder evh = (EditableValueHolder) child;
- descendantComponentStates.put(child.getClientId(context),
- new EditableValueHolderState(evh));
+ String clientId = child.getClientId(context);
+ String namingContainerId =
+ clientId.substring(0,
+ clientId.lastIndexOf( NamingContainer.SEPARATOR_CHAR));
+ if ( namingContainerId.equals(this.getClientId(context)) ){
+ EditableValueHolder evh = (EditableValueHolder) child;
+ descendantComponentStates.put(child.getClientId(context),
+ new EditableValueHolderState(evh));
+ }
}
saveDescendantComponentStates(context, child);
}
@@ -223,9 +229,15 @@
UIComponent child = (UIComponent) children.get(i);
child.setId(child.getId());
if (child instanceof EditableValueHolder) {
- EditableValueHolder evh = (EditableValueHolder) child;
- EditableValueHolderState state = (EditableValueHolderState) descendantComponentStates.get(child.getClientId(context));
- state.restore(evh);
+ String clientId = child.getClientId(context);
+ String namingContainerId =
+ clientId.substring(0,
+ clientId.lastIndexOf( NamingContainer.SEPARATOR_CHAR));
+ if ( namingContainerId.equals(this.getClientId(context)) ){
+ EditableValueHolder evh = (EditableValueHolder) child;
+ EditableValueHolderState state = (EditableValueHolderState) descendantComponentStates.get(child.getClientId(context));
+ state.restore(evh);
+ }
}
restoreDescendantComponentStates(context, child);
}
---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<--
--
Shigeru Gougi < [E-MAIL ADDRESS DELETED] >
http://www.wingnest.com/gougi/
Seasar-user メーリングリストの案内