実体参照

Tapestryコンポーネントを利用すると、HTMLには実体参照(数値文字参照:&#から始まる数値;)で出力されます。この事は、インジェクションやCSS対策に有効ですが、i-modeのように実体参照を理解しないクライアントで観るときに問題となります(化けてしまう)。
Insertコンポーネントなどにはraw属性があり、実体参照で出力しないように指定できますが、SubmitコンポーネントやTextFieldコンポーネントなどにはraw属性が無いので指定できません。この場合、ボタンに表示される文字や、テキストフィールドに初期表示されている内容などが化けることになります。

回避策

  1. org.apache.tapestry.AbstractMarkupWriterを書き換える。
  2. コンポーネントを自作する。

どちらも簡単なのですぐ出来ますが、無難なのはコンポーネントを書く方でしょうか。