首页>代码>spring+spring mvc+mybatis开发java web行业通用门户网站企业官网>/enterprise/src/main/java/com/enterprise/controller/BaseController.java
package com.enterprise.controller; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.enterprise.service.Services; import com.enterprise.core.SystemManage; import com.enterprise.entity.page.PageModel; import com.enterprise.util.RequestHolder; /** * 抽象控制类 * @author Cesiumai * * @param <E> */ public abstract class BaseController<E extends PageModel> { protected String page_toList = null; protected String page_toEdit = null; protected String page_toAdd = null; public abstract Services<E> getService(); @Autowired protected SystemManage systemManage; /** * 后台左边导航菜单的初始化查询方法 */ protected void initPageSelect(){ } protected void setParamWhenInitQuery(E e){ } /** * 查询列表 * @param request * @param e * @return * @throws Exception */ @RequestMapping("selectList") public String selectList(HttpServletRequest request,@ModelAttribute("e") E e) throws Exception{ this.initPageSelect(); setParamWhenInitQuery(e); int offset = 0; if(request.getParameter("pager.offset")!=null){ offset = Integer.parseInt(request.getParameter("pager.offset")); } if(offset < 0){ offset=0; } e.setOffset(offset); PageModel page = getService().selectPageList(e); if(page == null){ page = new PageModel(); } page.setPagerSize((page.getTotal() + page.getPageSize() - 1) / page.getPageSize()); selectListAfter(page); request.setAttribute("pager", page); return page_toList; } /** * 分页查询设置pagerurl * @param page */ protected void selectListAfter(PageModel page){ page.setPagerUrl("selectList"); } /** * 转到编辑页面 * @param e * @param model * @return * @throws Exception */ @RequestMapping("toEdit") public String toEdit(@ModelAttribute("e") E e , ModelMap model) throws Exception{ e = getService().selectOne(e); model.addAttribute("e", e); return page_toEdit; } /** * 转到添加页面 * @param e * @param model * @return * @throws Exception */ @RequestMapping("toAdd") public String toAdd(@ModelAttribute("e") E e,ModelMap model) throws Exception{ e.clean(); return page_toAdd; } /** * 回到查询页面 * @param e * @param model * @return * @throws Exception */ @RequestMapping("back") public String back(@ModelAttribute("e") E e,ModelMap model) throws Exception{ return selectList(RequestHolder.getRequest(), e); } /** * 批量删除 * @param request * @param ids * @param e * @param flushAttrs * @return * @throws Exception */ @RequestMapping(value="deletes",method = RequestMethod.POST) public String deletes(HttpServletRequest request,String[] ids,@ModelAttribute("e") E e,RedirectAttributes flushAttrs) throws Exception{ getService().deletes(ids); addMessage(flushAttrs,"操作成功!"); return "redirect:selectList"; } /** * insert之后,selectList之前执行的动作,一般需要清除添加的E,否则查询会按照E的条件进行查询. * 部分情况下需要保留某些字段,可以选择不清除 * @param e */ protected void insertAfter(E e){ } /** * 插入数据 * @param request * @param e * @param flushAttrs * @return * @throws Exception */ @RequestMapping(value="insert",method=RequestMethod.POST) public String insert(HttpServletRequest request , @ModelAttribute("e") E e,RedirectAttributes flushAttrs) throws Exception{ getService().insert(e); insertAfter(e); addMessage(flushAttrs,"操作成功!"); return "redirect:selectList"; } /** * 更新数据 * @param request * @param e * @param flushAttrs * @return * @throws Exception */ @RequestMapping(value = "update", method = RequestMethod.POST) public String update(HttpServletRequest request, @ModelAttribute("e") E e, RedirectAttributes flushAttrs) throws Exception { getService().update(e); insertAfter(e); addMessage(flushAttrs, "操作成功!"); return "redirect:selectList"; } /** * datatable异步请求数据 * @param request * @param e * @return */ @RequestMapping("loadData") @ResponseBody public PageModel loadData(HttpServletRequest request, E e){ int offset = 0; int pageSize = 10; if(request.getParameter("start")!=null){ offset = Integer.parseInt(request.getParameter("start")); } if(request.getParameter("length")!=null){ pageSize = Integer.parseInt(request.getParameter("length")); } if(offset<0){ offset=0; } if(pageSize<0){ pageSize=10; } e.setOffset(offset); e.setPagerSize(pageSize); PageModel page = getService().selectPageList(e); page.setRecordsTotal(page.getTotal()); page.setRecordsFiltered(page.getTotal()); return page; } protected void addMessage(ModelMap modelMap ,String message){ modelMap.addAttribute("message", message); } protected void addWarning(ModelMap modelMap ,String message){ modelMap.addAttribute("warning", message); } protected void addEroor(ModelMap modelMap ,String message){ modelMap.addAttribute("errorMsg", message); } protected void addMessage(RedirectAttributes flushAttrs,String message){ flushAttrs.addFlashAttribute("message", message); } protected void addWarning(RedirectAttributes flushAttrs,String message){ flushAttrs.addFlashAttribute("warning", message); } protected void addError(RedirectAttributes flushAttrs,String message){ flushAttrs.addFlashAttribute("errorMsg", message); } }
最近下载更多
sccs1984 LV15
前天
lilong007 LV20
2023年12月30日
guigu2012 LV11
2023年12月13日
qq573914838 LV5
2023年9月10日
guanrenan LV10
2023年9月4日
xxk6225655 LV1
2023年6月22日
include LV8
2023年6月20日
mmmkkl LV2
2023年5月11日
泓鼎168 LV19
2023年4月28日
xiaoying0820 LV1
2023年3月22日