package com.nfwork.dbfound.web.jstl; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspTagException; import com.nfwork.dbfound.util.JsonUtil; import com.nfwork.dbfound.util.LogUtil; import com.nfwork.dbfound.core.Context; import com.nfwork.dbfound.core.Transaction; import com.nfwork.dbfound.dto.ResponseObject; import com.nfwork.dbfound.web.WebWriter; public class ControlBody extends InitProcedure { private static final long serialVersionUID = -5941376965347019531L; private boolean outMessage = true; public int doStartTag() throws JspTagException { // 开启事务 HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); HttpServletResponse response = (HttpServletResponse) pageContext.getResponse(); Context context = Context.getCurrentContext(request, response); Transaction transaction = context.getTransaction(); transaction.begin(); return EVAL_BODY_INCLUDE; } @SuppressWarnings("unchecked") public int doEndTag() throws JspException { // 提交关闭事务 HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); HttpServletResponse response = (HttpServletResponse) pageContext.getResponse(); Context context = Context.getCurrentContext(request, response); Transaction transaction = context.getTransaction(); transaction.commit(); transaction.end(); try { if (outMessage) { ResponseObject ro = new ResponseObject(); Object result = context.getData("outParam"); if (result != null) { ro.setOutParam((Map<String, Object>) result); } // 向客服端传送成功消息 ro.setSuccess(true); ro.setMessage("操作成功!"); WebWriter.jsonWriter((HttpServletResponse) pageContext.getResponse(), JsonUtil.beanToJson(ro)); } } catch (Exception e) { LogUtil.error(e.getMessage(), e); } return EVAL_PAGE; } public boolean isOutMessage() { return outMessage; } public void setOutMessage(boolean outMessage) { this.outMessage = outMessage; } }