package com.insoul.copartner.mobile.controller;
import java.beans.PropertyEditor;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.servlet.ModelAndView;
import com.insoul.copartner.constant.ResponseCode;
import com.insoul.copartner.exception.CException;
import com.insoul.copartner.service.IContentService;
import com.insoul.copartner.service.INewsService;
import com.insoul.copartner.service.ISystemSettingService;
public abstract class BaseController {
protected final Log logger = LogFactory.getLog(getClass());
@Autowired
protected INewsService newsService;
@Autowired
protected IContentService contentService;
@Autowired
protected ISystemSettingService systemSettingService;
@Autowired
protected HttpSession session;
@InitBinder
protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
PropertyEditor editor = new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"), true);
binder.registerCustomEditor(Date.class, editor);
}
@ExceptionHandler(Exception.class)
public ModelAndView handleException(Exception ex) {
ResponseCode code = ResponseCode.SERVER_ERROR;
String errorMessage = null;
if (ex instanceof CException) {
code = ((CException) ex).getCode() != null ? ((CException) ex).getCode() : code;
errorMessage = ex.getMessage();
} else {
errorMessage = "server error";
}
ModelAndView mav = new ModelAndView();
if (code.equals(ResponseCode.UNAUTHORIZED)) {
mav.setViewName("redirect:/login");
} else {
mav.setViewName("redirect:/crash");
mav.addObject("errorMessage", errorMessage);
}
return mav;
}
}