baseAction
来源:互联网 发布:什么叫做数据库查询 编辑:程序博客网 时间:2024/05/18 04:00
package com.zxwl.base.action;import com.opensymphony.xwork2.ActionSupport;import com.zxwl.base.dao.DataPage;import com.zxwl.base.dao.Parameter;import com.zxwl.base.dao.QueryParameter;import com.zxwl.base.service.IBaseService;import com.zxwl.common.log.ILogger;import com.zxwl.common.log.LoggerManager;import com.zxwl.common.type.ZxwlTypeConverter;import com.zxwl.common.util.JsonUtil;import com.zxwl.common.util.SystemConfigManager;import com.zxwl.system.entity.Operator;import java.beans.BeanInfo;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.io.IOException;import java.io.PrintWriter;import java.lang.reflect.Method;import java.sql.BatchUpdateException;import java.util.List;import java.util.Map;import java.util.Set;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;import org.apache.struts2.interceptor.RequestAware;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.interceptor.SessionAware;public abstract class BaseAction<E> extends ActionSupport implements ServletRequestAware, RequestAware, SessionAware{ protected IBaseService<E> service; protected ILogger logger; private static final long serialVersionUID = 1L; protected HttpServletRequest servletRequest; protected Map<String, Object> request; protected Map<String, Object> session; public <E> BaseAction() { this.logger = LoggerManager.getLogger(this); } protected void writeStringToClient(String data) { HttpServletResponse response = ServletActionContext.getResponse(); try { response.setContentType("text/html;charset=UTF-8"); this.logger.debug("发送json:" + data); response.getWriter().write(data); } catch (IOException e) { this.logger.warn("数据发送失败!", e); } } protected void sendDataToClient(Object data) { sendJsonToClient(data); } protected void sendJsonToClient(Object data) { String jSon; /* String jSon;*/ if ((data instanceof List)) { jSon = JsonUtil.listToJson((List)data); } else { /* String jSon;*/ if ((data instanceof Map)) { jSon = JsonUtil.MaptoJson((Map)data); } else { jSon = JsonUtil.beanToJson(data); } } writeStringToClient(jSon); } public void setSession(Map<String, Object> session) { this.session = session; } public void setRequest(Map<String, Object> request) { this.request = request; } public Operator getCurrentOperator() { return (Operator)this.session.get("loginUser"); } public String getConfigValue(String configName) { Operator operator = getCurrentOperator(); if (operator != null) { return operator.getConfigValue(configName); } return null; } public String setConfigValue(String configName, String configValue) { Operator operator = getCurrentOperator(); if (operator != null) { return operator.setConfigValue(configName, configValue); } return null; } public Operator getOperator(String operatorId) { return SystemConfigManager.getOperator(operatorId); } public void addOperator(Operator operator) { SystemConfigManager.addOperator(operator); } public void removeOperator(String operatorId) { SystemConfigManager.removeOperator(operatorId); } public String getHostIp() { return this.servletRequest.getRemoteAddr(); } public String getSystemConfig(String configName) { return SystemConfigManager.getConfigValue(configName); } public void setServletRequest(HttpServletRequest servletRequest) { this.servletRequest = servletRequest; } public String getAttributeValue(String name) { HttpServletRequest httpRequest = ServletActionContext.getRequest(); if (httpRequest != null) { Object object = httpRequest.getAttribute(name); if (object != null) { return object.toString(); } } this.logger.debug(name + "取值为null!"); return null; } public String getParameterValue(String paraName) { HttpServletRequest httpRequest = ServletActionContext.getRequest(); if (httpRequest != null) { return httpRequest.getParameter(paraName); } return null; } public void putRequestValue(String key, Object value) { this.request.put(key, value); } public Object getRequestValue(String key) { return this.request.get(key); } public boolean IsUniqueException(Exception e) { Throwable t = e.getCause(); while (t.getCause() != null) { t = t.getCause(); } if ((t instanceof BatchUpdateException)) { BatchUpdateException updateException = (BatchUpdateException)t; if (updateException.getSQLState().equals("23000")) { this.logger.warn("违反唯一约束!", e); return true; } } return false; } public void setErrorMessage(String errorMsg) { putRequestValue("errorMsg", errorMsg); } public String getClientIp() { HttpServletRequest httpRequest = ServletActionContext.getRequest(); return httpRequest.getRemoteAddr(); } public boolean getPower(String actionName) { this.logger.warn("该函数已经作废,永远返回false!"); return false; } public void sendSuccessResult(String message) { String resultData = "{\"message\":\"" + message + "\",\"result\":\"success\"}"; writeStringToClient(resultData); } public void sendErrorResult(String message) { String resultData = "{\"message\":\"" + message + "\",\"result\":\"error\"}"; writeStringToClient(resultData); } public QueryParameter getParameter(QueryParameter queryParameter) { if ((queryParameter != null) && (queryParameter.size().intValue() > 0)) { Set<String> names = queryParameter.findParameterNames(); for (String name : names) { Parameter parameter = queryParameter.findParameter(name); if (parameter != null) { try { String value = getParameterValue(parameter.getName()); if ((value != null) && (!value.equals(""))) { parameter.setValue(value); } } catch (Exception e) { this.logger.warn("将" + getParameterValue(parameter.getName()) + "转换为" + name + "异常!", e); } } } } this.logger.debug(queryParameter); return queryParameter; } public E getEntity() { try { ZxwlTypeConverter converter = ZxwlTypeConverter.getInstance(); E entity = this.service.createEntity(); PropertyDescriptor[] props = Introspector.getBeanInfo(entity.getClass(), Object.class).getPropertyDescriptors(); for (PropertyDescriptor prop : props) { String propName = prop.getName(); String value = getParameterValue(propName); Method setter = prop.getWriteMethod(); Class classType = prop.getPropertyType(); if ((setter != null) && (value != null) && (!value.equals(""))) { setter.invoke(entity, new Object[] { converter.convertValue(value, classType) }); } } this.logger.debug("实体填充成功!" + entity.toString()); return entity; } catch (Exception e) { this.logger.warn("填充实体异常!", e); }return null; } public String query() { try { String id = getParameterValue("id"); Object entity = this.service.query(Integer.valueOf(Integer.parseInt(id))); this.logger.debug("查询成功!"); sendDataToClient(entity); } catch (Exception e) { this.logger.error("查询异常!", e); sendErrorResult("查询失败!"); } return null; } public String delete() { try { String id = getParameterValue("id"); this.service.delete(Integer.valueOf(Integer.parseInt(id))); this.logger.debug("删除成功!"); sendSuccessResult("删除成功!"); } catch (Exception e) { this.logger.error("删除异常!", e); sendErrorResult("删除失败!"); } return null; } public String update() { try { E entity = getEntity(); if (this.service.isChanged(entity).booleanValue()) { this.logger.debug("记录已经修改,不能保存"); sendErrorResult("记录已经修改,不允许保存"); } else { this.service.update(entity); this.logger.debug("更新成功!"); sendSuccessResult("更新成功!"); } } catch (Exception e) { this.logger.error("更新异常!", e); sendErrorResult("更新失败!"); } return null; } public String save() { try { E entity = getEntity(); this.service.save(entity); this.logger.debug("保存成功"); sendSuccessResult("保存成功!"); } catch (Exception e) { this.logger.error("保存异常!", e); sendErrorResult("保存失败!"); } return null; } public String queryList() { try { QueryParameter queryParameter = new QueryParameter(); fullQueryParameter(queryParameter); queryParameter.addIntegerParameter("pageSize"); queryParameter.addIntegerParameter("pageNum"); queryParameter = getParameter(queryParameter); DataPage dataPage = new DataPage(); dataPage.setQueryParameter(queryParameter); this.service.queryForPage(dataPage); this.logger.debug("查询成功"); sendDataToClient(dataPage); } catch (Exception e) { this.logger.error("查询异常!", e); sendErrorResult("查询失败!"); } return null; } public abstract void setService(IBaseService<E> paramIBaseService); public abstract void fullQueryParameter(QueryParameter paramQueryParameter);}
0 0
- BaseAction
- BaseAction
- BaseAction
- BaseAction
- BaseAction
- BaseAction
- BaseAction
- BaseAction
- BaseAction
- baseAction
- BaseAction
- BaseAction 类
- 通用BaseAction
- StrutsCatalog系列(1)--BaseAction
- BaseAction extends DispatchAction
- struts 2 BaseAction
- 常用的BaseAction类
- abstract class BaseAction
- 程序员的职业素养
- iOS 两年小猿开始发文
- KoaHub平台基于Node.js开发的Koa的简单包装到请求库的类似接口
- 在Linux环境下mysql的root密码忘记解决方法
- ExtJS入门之事件(fireEvent)
- baseAction
- Facebook 登录自定义按钮
- selenium Rc的使用
- 前端页面制作流程分享与总结
- JQuery拼接html页面时JSONObject作为onclick参数如何传递?
- sed编辑器基础之替换命令
- 小强升职记 思维导图
- nRF52832 Power II 需核对
- http缓存