ControllerTemplate.ftl 3.99 KB
package ${mainPackageInfo}.${moduleName}.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
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.lang.StringUtils;
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 ${mainPackageInfo}.contants.ResultInfoCode;
import ${poPackageInfo}.${poClassName};
import ${mainPackageInfo}.${moduleName}.service.${serviceImplClassName};
import com.taover.tools.CustomTimestampEditor;

@Controller
@RequestMapping("/${controllerUri}")
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){
    	return this.${serviceImplFieldName}.add(${poFieldName});
    }
    
    @RequestMapping(value="/delete")
    @ResponseBody
    public ResultInfo delete(
    		@RequestParam(value="ids", required=false) String ids, 
    		Model model, 
    		HttpServletRequest request){
    	//创建返回对象
    	ResultInfo result = new ResultInfo();
    	
    	//参数检验
    	if(ids == null || ids.length() == 0){
    		result.setResultId("200");
    		result.setResultMessage("删除失败,缺少主键信息");
    		return result;
    	}
    	
    	return result = this.${serviceImplFieldName}.delete(ids);
    }
    
    @RequestMapping(value="/edit", method=RequestMethod.POST)
    @ResponseBody
    public ResultInfo edit(
    		${poClassName} ${poFieldName}, 
    		Model model, 
    		HttpServletRequest request){
    	
    	return this.${serviceImplFieldName}.edit(${poFieldName});
    }


	/**
	 * 分页条件查询
	 * @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 = new ArrayList<Object[]>();
		
		<#list fields as tempField>
		${tempField["conditionCode"]}
		</#list>
		
		Map<String, Object> result = this.${serviceImplFieldName}.query(arrayCondition, sort, order, page, pageSize);
		result.put("resultId", "200");
		result.put("resultMessage", "请求成功");
		return result;
	}
		
}