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;
    }
}

 ちなみにこの話と直接関係ないけど、 Apachemod_rewrite → mod_proxy で転送すると、 IE が Content-type を正しく認識しないときが……なんかデータが変えられたりしてる?*1

*1:っつーかこーゆー時はパケット見るなりして調べればいいんだけどそーゆーのさえ慣れてないのがバレバレ(汗)。