0

SpringMVCを使用しています。転送してjspをレンダリングしたいと思います。そして、結果をjsonに書き込みたいと思います。

たとえば、複雑なjspをレンダリングし、終了時に次のように取得します。{"result": "ok"、 "html": "......."}

これどうやってするの?request.getRequestDispatcher( "tutorMini")。forward(request、response)を確認しようとしましたが、応答を渡すことができない場合は、すべての出力を書き込む必要があります。

そして、私はjspでいくつかのjsonタグを使用しようとしましたが、階層にいくつかの問題があります: jsp:includeとjson-taglibを使用したHTML出力

4

1 に答える 1

0

HTML を JSON に挿入するときに追加の変換 (エスケープ'") を適用する必要があるため、JSP の出力を直接応答に書き込むことはできません。

そのため、( and/orServletResponseWrapperをオーバーライドして) 出力を保存し、に渡すインスタンスを作成する必要があります(この場合よりも適切に見えます)。getWriter()getOutputStream()RequestDispatcher.include()forward()

MyServletResponseWrapper wrapper = new MyServletResponseWrapper(response);
request.getRequestDispatcher("tutorMini").include(request, wrapper);
String html = wrapper.getSavedOutput();

次に、保存されたコンテンツを JSON に挿入し、適切にエスケープします。

于 2013-01-19T17:57:25.687 に答える