package org.genedb.crawl.view; import java.io.Writer; import java.util.Map; import java.util.Map.Entry; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; import org.genedb.crawl.json.JsonIzer; import org.springframework.validation.BeanPropertyBindingResult; import org.springframework.web.servlet.View; public class JacksonView extends BaseView implements View { private static final Logger logger = Logger.getLogger(JacksonView.class); private String contentType = "application/json"; protected JsonIzer jsonIzer = new JsonIzer(); @Override public String getContentType() { return contentType; } @Override public void render(Map<String, ?> map, HttpServletRequest request, HttpServletResponse response) throws Exception { response.setContentType(contentType); Writer writer = response.getWriter(); String callback = request.getParameter("callback"); if (callback!=null) { writer.append(callback + "( "); } for (Entry<String, ?> entry : map.entrySet()) { //logger.debug(entry.getKey()); //logger.debug(entry.getValue()); Object value = entry.getValue(); if (value instanceof BeanPropertyBindingResult) { continue; } jsonIzer.toJson(value, writer); } if (callback!=null) { writer.append(" )"); } } }