Railsのerbレイアウトの中にJSPの本文を埋め込む

文字列バッファに出力するようにしたHttpServletResponseを作って
RequestDispatcherのincludeでJSPのページを取ってくればいい。


railsのControllerで以下のように書く(前提:JRuby-Rack環境)

    writer = java.io.StringWriter.new
    req = request.env['java.servlet_request']
    resp = javax.servlet.http.HttpServletResponse.impl do |method|
      case method
      when :getWriter
        java.io.PrintWriter.new(writer)
      else
        logger.warn "method:#{method} called"
      end
    end

    $servlet_context.getRequestDispatcher("/sample.jsp").include(req, resp)
    render :inline => writer, :layout => true

JSPの中でforwardをしなければHttpServletResponse内のcase文さえ不要かも・・・