ControllerTemplate.ftl 4.51 KB
package ${packageInfo};

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.taover.base.ResultInfo;
import ${poPackageInfo}.${poClassName};
import ${serviceImplPackageInfo}.${serviceImplClassName};
import com.taover.tools.CustomTimestampEditor;

@Controller
@RequestMapping("/${classUrlPath}")
public class ${controllerClassName} {
	@Resource
	private ${serviceImplClassName} ${serviceImplFieldName};
	
	Log log = LogFactory.getLog(this.getClass());
	
	/**
	 * 绑定日期参数
	 * @param request
	 * @param binder
	 */
    @InitBinder  
    protected void init(HttpServletRequest request, WebDataBinder binder){  
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");  
        dateFormat.setLenient(false);  
        binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));  
        SimpleDateFormat datetimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
   		datetimeFormat.setLenient(false);
   		binder.registerCustomEditor(java.sql.Timestamp.class,new CustomTimestampEditor(datetimeFormat, true));
    }
    
    @RequestMapping(value="/add", method=RequestMethod.POST)
    @ResponseBody
    public ResultInfo add(
    		${poClassName} ${poFieldName}, 
    		Model model, 
    		HttpServletRequest request){
    	ResultInfo result = new ResultInfo(); 
    	try{
    		result = this.${serviceImplFieldName}.add(${poFieldName});
    	}catch(Exception e){
    		result.setResultId("failure");
    		result.setResultMessage("系统报错,添加失败!");
    		log.error("系统报错,添加失败!");
    	}
    	return result;
    }
    
    @RequestMapping(value="/delete")
    @ResponseBody
    public ResultInfo delete(
    		@RequestParam(value="id", required=false) Integer id, 
    		Model model, 
    		HttpServletRequest request){
    	//创建返回对象
    	ResultInfo result = new ResultInfo();
    	
    	//参数检验
    	if(id==null || id<0){
    		result.setResultId("failure");
    		result.setResultMessage("删除失败,缺少主键信息或者主键错误!");
    		//添加失败,将提交的对象信息放入 data.node
    		result.addData("node", id);
    		return result;
    	}
    	
    	try{
    		result = this.${serviceImplFieldName}.delete(id);
    	}catch(Exception e){
    		result.setResultId("failure");
    		result.setResultMessage("系统报错,删除失败!");
    		log.error("系统报错,删除失败!");
    	}
    	return result;
    }
    
    @RequestMapping(value="/update", method=RequestMethod.POST)
    @ResponseBody
    public ResultInfo update(
    		${poClassName} ${poFieldName}, 
    		Model model, 
    		HttpServletRequest request){
    	//创建返回对象
    	ResultInfo result = new ResultInfo();
    	
    	try{
    		result = this.${serviceImplFieldName}.update(${poFieldName});
    	}catch(Exception e){
    		result.setResultId("failure");
    		result.setResultMessage("系统报错,更新失败!");
    		log.error("系统报错,更新失败!");
    	}
    	return result;
    }


	/**
	 * 分页条件查询
	 * @param page
	 * @param pageSize
	 * @return
	 */
	@RequestMapping(value = "/query")
	@ResponseBody
	public Map<String, Object> query(
			@RequestParam(value="sort", required=false) String sort,
			@RequestParam(value="order", required=false) String order,
			@RequestParam(value="page", required=false) Integer page,
			@RequestParam(value="rows", required=false) Integer pageSize,
			HttpServletRequest request) {
		//参数检验
		if(page == null){
			page = 1;
		}
		if(pageSize == null){
			pageSize = 20;
		}
		if("".equals(sort)){
			sort = "id";
			order = "desc";
		}
		
		//调用Service层查询方法
		List<Object[]> arrayCondition = null;
		Map<String, Object> result = this.${serviceImplFieldName}.query${poClassName}List(arrayCondition, sort, order, page, pageSize);
		return result;
	}
		
}