[Seasar-user:20736] Re: [Teeda] table 内の checkbox について

あきら [E-MAIL ADDRESS DELETED]
2011年 4月 19日 (火) 22:04:11 JST


あきらです

Dxoというよりは、Itemsの問題のようです。
原因は解決していませんが、public にすれば回避はします

	public List<Student> studentItems;

setStudentItems があると、昔の値を上書きしているように見えます
(本当は上書きしたあとに正しい値でセットしなおしているはずですが。。。)

publicの場合のログです

org.seasar.framework.container.hotdeploy.HotdeployBehavior - HOT deployを開始します
org.seasar.framework.container.util.S2ContainerUtil -
クラス(web.setLeader.SetLeaderPage[setLeader_setLeaderPage])のコンポーネント定義を登録します
org.seasar.framework.container.util.S2ContainerUtil -
クラス(web.setLeader.SetLeaderDxo[setLeader_setLeaderDxo])のコンポーネント定義を登録します
DEBUG org.seasar.framework.aop.interceptors.TraceInterceptor - BEGIN
web.setLeader.SetLeaderPage#isLeader()
DEBUG org.seasar.framework.aop.interceptors.TraceInterceptor - END
web.setLeader.SetLeaderPage#isLeader() : false
DEBUG org.seasar.framework.aop.interceptors.TraceInterceptor - BEGIN
web.setLeader.SetLeaderPage#isLeader()
DEBUG org.seasar.framework.aop.interceptors.TraceInterceptor - END
web.setLeader.SetLeaderPage#isLeader() : false

setterがある場合のログです(publicでもセットがあるとこうなる)

org.seasar.framework.container.hotdeploy.HotdeployBehavior - HOT deployを開始します
org.seasar.framework.container.util.S2ContainerUtil -
クラス(web.setLeader.SetLeaderPage[setLeader_setLeaderPage])のコンポーネント定義を登録します
org.seasar.framework.container.util.S2ContainerUtil -
クラス(web.setLeader.SetLeaderDxo[setLeader_setLeaderDxo])のコンポーネント定義を登録します
org.seasar.framework.aop.interceptors.TraceInterceptor - BEGIN
web.setLeader.SetLeaderPage#getStudentItems()
org.seasar.framework.aop.interceptors.TraceInterceptor - END
web.setLeader.SetLeaderPage#getStudentItems() : null
org.seasar.framework.aop.interceptors.TraceInterceptor - BEGIN
web.setLeader.SetLeaderPage#setStudentItems([studentId = 1;
studentName = 前田敦子; leader = false, studentId = 2; studentName =
高橋みなみ; leader = true, studentId = 3; studentName = 板野友美; leader =
false, studentId = 4; studentName = 小嶋陽菜; leader = false, studentId =
5; studentName = 峯岸みなみ; leader = false, studentId = 6; studentName =
平嶋夏海; leader = false])
org.seasar.framework.aop.interceptors.TraceInterceptor - END
web.setLeader.SetLeaderPage#setStudentItems([studentId = 1;
studentName = 前田敦子; leader = false, studentId = 2; studentName =
高橋みなみ; leader = true, studentId = 3; studentName = 板野友美; leader =
false, studentId = 4; studentName = 小嶋陽菜; leader = false, studentId =
5; studentName = 峯岸みなみ; leader = false, studentId = 6; studentName =
平嶋夏海; leader = false]) : null
org.seasar.framework.aop.interceptors.TraceInterceptor - BEGIN
web.setLeader.SetLeaderPage#isLeader()
org.seasar.framework.aop.interceptors.TraceInterceptor - END
web.setLeader.SetLeaderPage#isLeader() : false

正しいときのフラグへのセッター(setStudentItemsがない)
studentIndex=0 leader=true(初回は前回の状態)
studentIndex=0 leader=false (ここが正しい値)
studentIndex=0 leader=false(?)
studentIndex=1 leader=false(初回は前回の状態)
studentIndex=1 leader=true (ここが正しい値)
studentIndex=1 leader=false(?)

だめなとき(setStudentItemsがある)
studentIndex=0 leader=true(初回は前回の状態)
studentIndex=0 leader=false(?)
studentIndex=1 leader=false(初回は前回の状態)
studentIndex=1 leader=false(?)

真ん中の正しい値をセットする部分が抜けていますね

studentItemsSave の中の処理っぽいですが、Teeda本体のソースが入っていない開発環境
でなのでそれ以上は追っていませんが、まずは途中まで!

あきら


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