[Seasar-user:20994] [Teeda]レンダリング時にタグの属性が重複して出力される

齊藤正行 [E-MAIL ADDRESS DELETED]
2011年 9月 9日 (金) 11:52:25 JST


しゃってんです。


Teedaを利用させていただき開発を行っております。

HTMLのレンダリング時に出力されるタグの挙動について、
動作上は問題にはなっておりませんが気になる点がありましたので報告いたします。

inputタグの出力において name および type が重複して出力される場合がありあました。


1.
type="password" かつ name属性が記述されている際に、
  HTMLに記述されているname属性とTeeda側でformのID等を追加したname属性の両方が出力されてしまう。

<form id="editForm">
<input type="password" id="userPass" name="userPass" />
</form>
  ↓↓↓
<form id="editForm" ・・・>
<input type="password" id="userPass" name="editForm:userPass" ・・・
name="userPass" />
</form>

※type="text"等(radioを除く)の場合は、HTMLに記述されたname属性は破棄されています。
こちらについては、type="radio"以外のinputタグにname属性を記述しないことで対処できております。


2.
type="checkbox"とすると、type属性が2度出力されてしまう。

<form id="editForm">
<input type="checkbox" id="checkFlag" ・・・ />
</form>
  ↓↓↓
<form id="editForm" ・・・>
<input type="checkbox" id="checkFlag" name="editForm:checkFlag"
value="true" ・・・ type="checkbox" />
</form>

※type="text"等の場合は、type属性は1つのみ出力されています。

こちらでソースをおってみたところ、
org.seasar.teeda.core.render.html.HtmlSelectBooleanCheckboxRenderer
の ignoreComponent に設定される内容に TYPE_ATTR が記述されていないため、
制御対象外のタグを出力する際にtype属性も出力されてしまっているようです。

試せてはおりませんが、複数項目のチェックボックスも同様かと思われます。


利用しているTeedaのバージョンは以下の通りです。
teeda-core-1.0.13-sp10
teeda-extension-1.0.13-sp10
teeda-tiger-1.0.13-sp10

以上、ご確認お願いいたします。


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