最近在看《spring in action》这本书,看到对controller的介绍,提供了
- AbstractController
AbstractCommandController
SimpleFormController
AbstractWizardFormController
MultiActionController
ThrowawayController这么几类Controller,再看他给的理由:
- AbstractController:提供了最简单的reques,response,一般是没有参数的;
AbstractCommandController:当你要提供参数,但是在controller里面处理参数又显得逻辑不清晰,提供 这么一个command object; SimpleFormController:这里呢,你有了commandObject,但是,如果还需要表单验证呢,没问题,spring帮你解决,写好你的validator,配置一下,就可以了; AbstractWizardFormController:如果表单内容过多,又该怎么办,向导页,会提供这些功能,当然了对前进后退这些事情的控制,也是通过配置文件来管理的; 好了,没参数的,有参数的,参数少的,参数多的都提供了,我一个Controller里面现在只有一个action,如果想提供多个怎么办,MultiActionController,给你提供了解决方案。 还想要什么,前面的所有controller都是单态的,我还想像黑瞎子掰棒子一样,掰一个扔一个,没问题,ThrowawayController就是这么想的,看他的名字,throw away,就可以看出来。
-----------------------
用springmvc最郁闷的地方在验证上。
不知道怎么设计的,SimpleFormController每次都会先绑定数据到Command上,再进行验证,如果Command里有java.util.Date类型的属性,即使绑定成功,也会验证失败。
不过想想也是commons-validation基本上是给struts订做的,用在别的地方肯定有问题。不知道springmvc用什么验证框架比较好哦。