Wicketで外部ライブラリ(JDOM)を使用したXML出力方法
DynamicWebResource継承してウダウダ書きながら
「さすがにココまでやらなくてもよくね?」
と思ってググったら良さそうな記事発見。
Wicket FeedPage(WicketでRSSフィード作成)
JDOMで書き換えてみるとこうなった。
…ってRSSライブラリにJDOMベースのROMEが使われてるから、ほとんど書き換えなくてよし。
注1)マークアップ用にダミーでXmlPage.xmlを作成する必要有り。
注2)ローカル環境によっては出力時に文字コード指定しなきゃ化ける。
public class XmlPage extends WebPage { public XmlPage(){ } @Override public String getMarkupType() { return "xml"; } @Override protected final void onRender(MarkupStream markupStream) { PrintWriter writer = new PrintWriter( this.getResponse().getOutputStream() ); XMLOutputter outputter = new XMLOutputter(); try { outputter.output(JDOM_DOCUMENT, writer); } catch (IOException e) { throw new RuntimeException("XML出力に失敗しました", e); } } }