-->
http://d.hatena.ne.jp/coolstyle/20070319#1174308234
どこかでチラっと見たような気がして探したらorg.apache.tapestry.dom.DefaultMarkupModelにありました。tranditionalなHTMLにするために故意にそうしてるみたいです。MarkupModelの他の実装でsrc/test/java配下にXMLMarkupModelというのがあって、これを使うと<br/>とかにも対応できそうなので試してみたらできました。方法は、id:butyricacidさんがやってたdecorateしようとして他のオブジェクトを返す、というやり方です。
public static MarkupWriterFactory decorateMarkupWriterFactory( @InjectService("ComponentInvocationMap") final ComponentInvocationMap componentInvocationMap, Object delegate) { return new MarkupWriterFactory() { public MarkupWriter newMarkupWriter() { return new MarkupWriterImpl(new DefaultMarkupModel() { @Override public EndTagStyle getEndTagStyle(String element) { return EndTagStyle.ABBREVIATE; } }, componentInvocationMap); } }; }
できるにはできるけど、<br>こんなのも</br>ありになるXMLだし。ComponentInvocationMapとMarkupWriterImplがinternalなのでちょっと気持ち悪い。けど今は他にやり方が思いつかないので仕方ない。