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

57 lines
2.0 KiB

package web.controller;
import db.form.DBAction;
import db.form.PageResult;
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.service.BaseService;
import java.util.List;
public abstract class TableController<T extends AbstractModel,A extends T,E extends BaseService> extends BaseController<T,A,E> {
@RequestMapping("table")
public String find(Model model,@ModelAttribute("command") A command,PageResult pageResult){
DBAction action=DBAction.R;
log.info(tableName+ "进行批量" + action.getCh() + "操作请求");
PageResult result;
if(checkAction(action)) {
try {
Long rowCount=rowCount(command);
if(rowCount>0) {
List list = find(command, pageResult.getCurrentPage()*pageResult.getPageSize(), pageResult.getPageSize());
result=new PageResult<T>(rowCount, pageResult.getCurrentPage(),list,pageResult.getPageSize() , Type.success);
}else{
result=new PageResult(Type.fail,"没有记录");
}
} catch (DataAccessException e) {
log.error(e);
result=new PageResult(Type.fail,"非法操作");
}
}else{
result=new PageResult(Type.fail,tableName + "不允许" + action.getCh() + "操作");
}
model.addAttribute("datas", result);
return "table";
}
@Override
protected boolean checkAction(DBAction action) {
return false;
}
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));
}
}