You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
webcrawler/web/src/main/java/web/controller/TableController.java

67 lines
2.3 KiB

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<T extends AbstractModel,A extends T,E extends BaseService,B extends Table<T>> extends BaseController<T,A,E> {
@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));
}
}