package fi.arcusys.koku.navi; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSON; import net.sf.json.JSONObject; import net.sf.json.JSONSerializer; import org.apache.commons.lang.StringUtils; import org.springframework.web.servlet.view.AbstractView; /** * Implements ajax view for ajax response in json format * @author Jinhua Chen * May 11, 2011 */ public class AjaxView extends AbstractView { private static final String DEFAULT_AJAX_CONTENT_TYPE = "text/plain; charset=UTF-8"; public AjaxView() { super(); setContentType(DEFAULT_AJAX_CONTENT_TYPE); } @Override public String getContentType () { String orgiContentType = super.getContentType (); if (StringUtils.isEmpty (orgiContentType)) { orgiContentType = DEFAULT_AJAX_CONTENT_TYPE; } return orgiContentType; } @Override protected void renderMergedOutputModel (Map<String, Object> map, HttpServletRequest request, HttpServletResponse response) throws Exception { if (map == null || map.isEmpty ()) { JSONObject.fromObject ("{}").write (response.getWriter ()); return; } JSON json = JSONSerializer.toJSON (map); json.write (response.getWriter ()); } }