package web.controller; import db.form.DBAction; import db.form.Type; import db.model.AbstractModel; import org.springframework.dao.DataAccessException; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import web.html.Table; import web.service.BaseService; import java.util.List; public abstract class TableController> extends BaseController { @RequestMapping("table") public String find(Model model,@ModelAttribute("command") A command,B pageResult) { DBAction action=DBAction.R; log.info(tableName+ "进行批量" + action.getCh() + "操作请求"); B result = getNewTable(); if(checkAction(action)) { try { Long rowCount=rowCount(command); if(rowCount>0) { List list = find(command, pageResult.getCurrentPage()*pageResult.getPageSize(), pageResult.getPageSize()); result.setCount(rowCount); result.setCurrentPage(pageResult.getCurrentPage()+1); result.setDatas(list); result.setPageSize(pageResult.getPageSize()); result.setType(Type.success); result.setPages(); }else{ result.setType(Type.fail); result.setErrorMsg("没有记录"); } } catch (DataAccessException e) { log.error(e); result.setType(Type.fail); result.setErrorMsg("非法操作"); } }else{ result.setType(Type.fail); result.setErrorMsg(tableName + "不允许" + action.getCh() + "操作"); } model.addAttribute("datas", result); setModel(model); return "table"; } protected void setModel(Model model){ } protected abstract B getNewTable(); protected List find(A command, Integer firstResult,Integer maxResults){ return service.find(getDetachedCriteria(command), firstResult, maxResults); } protected long rowCount(A command){ return service.rowCount(getDetachedCriteria(command)); } }