SpringMVC进阶(三)——控制器

    在Spring MVC中,有几种控制器,下面我们来一一介绍一下。


    1.ParameterizableViewController(参数控制器)


    示例:在springmvc-servlet.xml中配置映射处理器和参数控制器

	
	
		
			
				toLogin
			
		
	

	
	
		
		
	

    执行结果如下:

    SpringMVC进阶(三)——控制器_第1张图片

    2.AbstractCommandController(命令控制器)


    示例:在springmvc-servlet.xml中配置映射处理器和参数控制器

	
		
						
				comm
			
		
	

	
	
		
		
	

    新建命令控制器:

   

public class CommController extends AbstractCommandController{

	@Override
	protected ModelAndView handle(HttpServletRequest arg0,
			HttpServletResponse arg1, Object arg2, BindException arg3)
			throws Exception {
		//将封装的参数转化为person对象
		Person p = (Person) arg2;
		System.out.println(p);
		Map map = new HashMap();
		map.put("person", p);
		return new ModelAndView("index",map);
	}
	
	//日期转换
	@Override
	protected void initBinder(HttpServletRequest request,
			ServletRequestDataBinder binder) throws Exception {
		binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true));
		
	}

     访问结果如下:

     SpringMVC进阶(三)——控制器_第2张图片

    控制台打印信息:

    

    3.FormController(表单控制器)

    

    示例:在springmvc-servlet.xml中配置映射处理器和参数控制器

    

	
		
		
		
		
		
		
	

          新建表单控制器:

    

public class FormController extends SimpleFormController{

	@Override
	protected void doSubmitAction(Object command) throws Exception {
		Person p = (Person) command;
		System.out.println(p);
		super.doSubmitAction(command);
	}
	
	//转化日期格式
	@Override
	protected void initBinder(HttpServletRequest request,
			ServletRequestDataBinder binder) throws Exception {
		binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true));
		
	}
}

    控制台打印结果:

    


    总结:

    Spring MVC为我们提供了很好的参数封装,而struts2通过属性驱动或者模型驱动或自定义来获得参数的封装,相知之下,个人感觉SpringMVC封装的更加完善一些,在控制器类中不用提供get/set方法,只要和Model的属性名称对应即可。

    

你可能感兴趣的:(SpringMVC)