Struts で RSS 出力。
Struts って、画面遷移まわりもフレームワークで作られてるから、 RSS を返すような、画面遷移をしないで直接データを返すタイプのものってどうやるんかなーとちょっと調べてみる。
結論: null を返す(爆)。Content-type は HttpServletResponse#setContentType() で変えちゃえばいい。
public class RssAction extends StandardAction { public ActionForward execute ( ActionMapping mapping , ActionForm form , HttpServletRequest request , HttpServletResponse response ) throws Exception { try { // XML 出力します。 response.setContentType( "text/xml;charset=UTF-8" ); RssWriteControler rssWriteControler = new RssWriteControler( TheJavaA2ZApp.getJavaA2ZInstance() ); rssWriteControler.writeRss( response.getWriter() ); } catch( Exception e ) { e.printStackTrace(); } return null; } }
ちなみにこの話と直接関係ないけど、 Apache で mod_rewrite → mod_proxy で転送すると、 IE が Content-type を正しく認識しないときが……なんかデータが変えられたりしてる?*1
*1:っつーかこーゆー時はパケット見るなりして調べればいいんだけどそーゆーのさえ慣れてないのがバレバレ(汗)。