package net.loyin.jFinal.render; import java.io.IOException; import java.io.PrintWriter; import java.text.MessageFormat; import com.jfinal.render.Render; import com.jfinal.render.RenderException; /** * * @author loyin * * 2012-10-21 */ public class DwzRender extends Render { private static final long serialVersionUID = -6389678574264885365L; private static final String contentType = "text/html;charset=" + getEncoding(); private String statusCode = "200"; private String message = ""; private String navTabId = ""; private String callbackType = ""; private String forwardUrl = ""; private String rel=""; private String confirmMsg=""; public DwzRender(String message, String navTabId, String callbackType) { this.message = message; this.navTabId = navTabId; this.callbackType = callbackType; } public DwzRender() { } public static DwzRender success() { DwzRender dwzRender = new DwzRender(); dwzRender.setMessage("操作成功"); return dwzRender; } public static DwzRender success(String successMsg) { DwzRender dwzRender = new DwzRender(); dwzRender.setMessage(successMsg); return dwzRender; } public static DwzRender error() { DwzRender dwzRender = new DwzRender(); dwzRender.statusCode = "300"; dwzRender.message = "操作失败"; return dwzRender; } public static DwzRender error(String errorMsg) { DwzRender dwzRender = new DwzRender(); dwzRender.statusCode = "300"; dwzRender.message = errorMsg; return dwzRender; } public static Render refresh(String refreshNavTabId) { DwzRender dwzRender = new DwzRender(); dwzRender.navTabId = refreshNavTabId; return dwzRender; } public static DwzRender closeCurrentAndRefresh(String refreshNavTabId) { DwzRender dwzRender = new DwzRender(); dwzRender.navTabId = refreshNavTabId; dwzRender.callbackType = "closeCurrent"; return dwzRender; } @Override public void render() { PrintWriter writer = null; String dwz = "\"statusCode\":\"{0}\",\"message\":\"{1}\",\"navTabId\":\"{2}\",\"rel\":\"{3}\",\"callbackType\":\"{4}\",\"forwardUrl\":\"{5}\",\"confirmMsg\":\"{6}\""; dwz = "{\n" + MessageFormat.format(dwz, statusCode, message, navTabId, rel, callbackType, forwardUrl , confirmMsg) + "\n}"; try { response.setHeader("Pragma", "no-cache"); // HTTP/1.0 caches might not implement Cache-Control and might only implement Pragma: no-cache response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); response.setContentType(contentType); writer = response.getWriter(); writer.write(dwz); writer.flush(); } catch (IOException e) { throw new RenderException(e); } finally { writer.close(); } } public String getStatusCode() { return statusCode; } public void setStatusCode(String statusCode) { this.statusCode = statusCode; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String getNavTabId() { return navTabId; } public void setNavTabId(String navTabId) { this.navTabId = navTabId; } public String getCallbackType() { return callbackType; } public void setCallbackType(String callbackType) { this.callbackType = callbackType; } public String getForwardUrl() { return forwardUrl; } public void setForwardUrl(String forwardUrl) { this.forwardUrl = forwardUrl; } public String getRel() { return rel; } public void setRel(String rel) { this.rel = rel; } public String getConfirmMsg() { return confirmMsg; } public void setConfirmMsg(String confirmMsg) { this.confirmMsg = confirmMsg; } }