说说 spring mvc 中的controller

来源:互联网 发布:yy免费刷礼物软件 编辑:程序博客网 时间:2024/06/13 22:27

最近在看《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用什么验证框架比较好哦。