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

TAKEUCHI, Manabu [E-MAIL ADDRESS DELETED]
2011年 4月 18日 (月) 22:16:03 JST


竹内@エールシステムです。お世話になります。

現在 Teeda 10.0.13 sp10 にて開発しているのですが、次の現象で悩んでいます。

// html
<body>
  <form id="hogForm">
     <input id="schoolId-hidden" type="hidden" />
     <div id="schoolName">hog</div>
     <input id="studentItemsSave" type="hidden" />
     <table>
        <tbody  id="studentItems">
          <tr>
             <td>
               <input id="studentId-hidden" type="hidden" />
               <input id="leader" type="checkbox" />
             </td>
             <td><div id="studentName">bar</div></td>
           </tr>
        </tbody>
     </table>
     <input id="doRegist" type="button"  value="登録" />
  </form>
</body>

// page
public class HogPage {
   @RedirectScope private Long argSchoolId;
   private Long schoolId;
   private String schoolName;
   private List<Student> studentItems;
   private Integer studentIndex;

   public Class<?> initialize() {
      School school = schoolDao.selectById(argSchoolId);
      hogPageDxo.convert(school, this); // schoolId と schoolName の設定
      studentItems = studentDao.selectBySchoolId(argSchoolId); //
studentId と studentName, leader はこちらから
      return null;
   }

   public Class<?> doRegist() {
      School school = hogPageDxo.convert(this);
      schoolDao.update(school);
      studentDao.update(studentItems);
      return null;
   }
}

とこんな感じのページがあったとします。

表示はうまくいっているのですが、<input id="leader" type="checkbox" /> にチェックした内容が
doRegist() で stuentItems を参照した際に、反映されず、修正前の値が入ってきます
(当初 1 行目にチェックが入っていたのを外して、2 行目をチェックしても、1 行目がチェックのままで、2 行目にはチェック無しなど)。

ちなみに、dxo で convert が無いようなページでは、正常に checkbox に値が反映されます。

あと、不具合と言うにはあれなのですが、上記の場合のチェックボックスのレンダリング結果が
<input type="checkbox" id="leader"
name="includeChildBody:hogForm:studentItems:0:leader" value="true"
type="checkbox" />
と type が 2 回出現します。

よろしくお願いします。


-- 
竹内 学 <mailto:[E-MAIL ADDRESS DELETED]>
株式会社エールシステム


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