基于SSM框架和easyUI框架的简易人事管理系统(六)
辅助类
在编写的过程中有时候不能一步到位,并且需要当中的一些转化来简化自己的代码,这时候就会写一些辅助类来帮助自己
DateUtil
package util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtil {
public static Date getDate() throws ParseException{
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.parse(sdf.format(date));
}
}
IntegrateObject
package util;
import domain.Department;
import domain.Employee;
import domain.Position;
public class IntegrateObject {
/**
* 由于部门和职位在 Employee 中是对象关联映射,
* 所以不能直接接收参数,需要创建 Department 对象和 Position 对象
* */
public static void genericAssociation(Integer dept_id, Integer pos_id, Employee employee){
Department department = new Department();
department.setId(dept_id);
Position position = new Position();
position.setId(pos_id);
employee.setDepartment(department);
employee.setPosition(position);
}
}
JsonDateValueProcessor
package util;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class JsonDateValueProcessor implements JsonValueProcessor {
private String format ="yyyy-MM-dd HH:mm:ss";
public JsonDateValueProcessor() {
super();
}
public JsonDateValueProcessor(String format) {
super();
this.format = format;
}
@Override
public Object processArrayValue(Object paramObject,
JsonConfig paramJsonConfig) {
return process(paramObject);
}
@Override
public Object processObjectValue(String paramString, Object paramObject,
JsonConfig paramJsonConfig) {
return process(paramObject);
}
private Object process(Object value){
if(value instanceof Date){
SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.CHINA);
return sdf.format(value);
}
return value == null ? "" : value.toString();
}
}
ResponseUtil
package util;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
public class ResponseUtil {
public static void write(HttpServletResponse response, Object o)
throws Exception {
response.setContentType("text/html;charset=utf-8");
response.addHeader("Access-Control-Allow-Origin", "*");
PrintWriter out = response.getWriter();
out.println(o.toString());
out.flush();
out.close();
}
}
拦截器
这次代码对拦截器的编写不是很多,只是在登陆的时候加了一个,其实在正常开发中为了自己代码的严谨性,拦截器还是经常使用的
LoginInterceptor
package interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginInterceptor implements HandlerInterceptor {
// 不拦截 "/login" 请求
private static final String[] IGNORE_URI = { "/login" };
@Override
public void afterCompletion(HttpServletRequest arg0,
HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
}
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2, ModelAndView arg3) throws Exception {
}
// 该方法将在 Controller 处理前进行调用
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object handler) throws Exception {
// flag 表示是否登录
boolean flag = false;
// 获取请求的 URL
String url = request.getServletPath();
for (String s : IGNORE_URI) {
if (url.contains(s)) {
flag = true;
break;
}
}
if (!flag) {
// 获取 Session 并判断是否登录
String username = (String) request.getSession().getAttribute(
"username");
if (username == null) {
request.setAttribute("message", "Please log in first!");
// 如果未登录,进行拦截,跳转到登录页面
request.getRequestDispatcher("/login.jsp").forward(request, response);
} else {
flag = true;
}
}
return flag;
}
}
拦截器写完还是要在spring-mvc的配置文件中配置,不然不能使用
想测试自己spring和mybatis是否配置好能够正常使用可以写一个测试类,这点就不多说了,大家自行百度解决吧