2011-06-30 5 views
1

ModelAndViewを私のコントローラに手動でレンダリングして、JSONオブジェクトの中に配置する必要があります。私がModelAndViewオブジェクト全体をJSONに渡すと、jacksonがLAZYオブジェクトで正しく動作することができないため、「javassistlazyinitializerクラスではシリアライザが見つかりません」という例外が発生します。 はあなたの返信用ModelAndViewを手動でレンダリングしますか?

答えて

0
public class JSONView implements View { 
    /** 
    * Logger for this class 
    */ 
    private static final Logger logger = Logger.getLogger(JSONView.class); 

    private String contentType = "application/json"; 

    public void render(Map map, HttpServletRequest request, HttpServletResponse response) 
     throws Exception { 
    if(logger.isDebugEnabled()) { 
     logger.debug("render(Map, HttpServletRequest, HttpServletResponse) - start"); 
    } 

    JSONObject jsonObject = new JSONObject(map); 
    PrintWriter writer = response.getWriter(); 
    writer.write(jsonObject.toString()); 

    if(logger.isDebugEnabled()) { 
     logger.debug("render(Map, HttpServletRequest, HttpServletResponse) - end"); 
    } 
    } 

    public String getContentType() { 
    return contentType; 
    } 

} 

ModelAndView returnModelAndView = new ModelAndView(new JSONView(), model);

+0

感謝をありがとうございます。私はいくつかの別のViewResolver - MappingJacksonJsonViewを見つけました。しかしそれを設定することはできません。 Isは、リゾルバはアプリケーションコンテキストでは動作しませんが、configファイルに追加しました。何か案は?ありがとうございます – nKognito

+0

問題は、遅延コレクションでは失敗します。だから、私は手動のビューレンダリングの解決策を見つけることを試みています。次に、JSONオブジェクトに文字列として入れます – nKognito

+0

私の例を試しましたか? – hossaindoula

関連する問題