package com.hehenian.manager.actions; import java.io.IOException; import java.io.PrintWriter; import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import net.sf.json.JsonConfig; import net.sf.json.processors.JsonValueProcessor; import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import com.hehenian.manager.modules.sys.model.UserInfos; public class BaseAction { /*liminglong add date:2015-05-08 */ public static final String EXECUTE_STATUS = "executeStatus"; public static final String VALUES = "values"; public static final String EXECUTE_SUCCESS = "1"; public static final String EXECUTE_FAILURE = "0"; /*liminglong add date:2015-05-08 */ /** * jsonMap */ protected Map<String,Object> jsonMap = new HashMap<String, Object>(); public String getBaseBath() { String path = this.getClass().getProtectionDomain().getCodeSource() .getLocation().getPath(); path = path.substring(0, path.indexOf("/WEB-INF")) + "/upload/images"; return path; } public HttpServletRequest getRequest() { return ((ServletRequestAttributes) RequestContextHolder .getRequestAttributes()).getRequest(); } public HttpSession getSession() { return ((ServletRequestAttributes) RequestContextHolder .getRequestAttributes()).getRequest().getSession(); } public int getInt(String name) { return getInt(name, -1); } public int getInt(String name, int defaultValue) { return NumberUtils.toInt(getRequest().getParameter(name), defaultValue); } public String getString(String name) { return getString(name, null); } public String getString(String name, String defaultValue) { return ObjectUtils.toString(getRequest().getParameter(name), defaultValue); } public final String getIpAddr() { HttpServletRequest request = getRequest(); if (request == null) { return ""; } String ipaddr = request.getHeader("Cdn-Src-Ip"); if (StringUtils.isNotBlank(ipaddr)) { return ipaddr; } ipaddr = request.getHeader("X-Real-IP"); if (StringUtils.isNotBlank(ipaddr)) { return ipaddr; } ipaddr = request.getHeader("HTTP_X_FORWARDED_FOR"); if (StringUtils.isBlank(ipaddr)) { ipaddr = request.getRemoteAddr(); } return ipaddr; } public void outPrint(HttpServletResponse response, Object result) { try { response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); out.print(result.toString()); } catch (IOException e) { e.printStackTrace(); } } /** * json转换config * * @return */ protected JsonConfig getDefaultJsonConfig() { JsonConfig config = new JsonConfig(); config.registerJsonValueProcessor(Date.class, new JsonValueProcessor() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat timeFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); public Object processObjectValue(String key, Object value, JsonConfig cfg) { if(value!=null && value instanceof Timestamp){ return timeFormat.format(value); }else if (value != null && value instanceof Date) { return sdf.format(value); } return null; } public Object processArrayValue(Object value, JsonConfig cfg) { if(value!=null && value instanceof Timestamp){ return timeFormat.format(value); }else if (value != null && value instanceof Date) { return sdf.format(value); } return null; } }); return config; } public int getUserId() { SecurityContext ctx = SecurityContextHolder.getContext(); Authentication auth = ctx.getAuthentication(); if (auth.getPrincipal() instanceof UserDetails) { UserInfos user = (UserInfos) auth.getPrincipal(); return user.getUserId(); } return 0; } public UserInfos getUserInfos(){ SecurityContext ctx = SecurityContextHolder.getContext(); Authentication auth = ctx.getAuthentication(); if (auth.getPrincipal() instanceof UserDetails) { UserInfos user = (UserInfos) auth.getPrincipal(); return user; } return null; } }