关于Spring控制器的一点点疑惑

06-09-05 vircomagice
         

我们知道spring MVC框架中,提供了集中控制器,比如说AbstractController,AbstractCommandController等,拿处理命令的控制器(AbstractCommandController)来说,若我的请求URL带有一个参数(e.g:http://XXX/ccc?id=1)如果我要使用这种命令控制器的话,那么我必须要写一个id的POJO对象,然后再在命令控制器中引用这个POJO对象,获得URL中的id值;

而另外一种方法,我们可以直接使用request.getParameter("id")这一句话就可以获得URL中id的值,spring的处理方式不是非常麻烦吗,既然这样为什么还要使用命令控制器呢?

         

banq
2006-09-06 09:43

表现层框架都是这样,这叫遵循OO封装原理,任何一个字段都是对象字段,都没有单独存在的理由。

vircomagice
2006-09-06 12:10

谢谢banq的回复,我还是有疑问。

很显然我们把id字段封装成对象这种做法是非常麻烦的一种做法啊,难道就是因为我们遵循的原理是OO设计,所以我们必须采取这种方式吗?这不就是为了设计而设计吗?

banq
2006-09-06 12:17

》因为我们遵循的原理是OO设计,所以我们必须采取这种方式吗?这不就是为了设计而设计吗

准确地说遵循的原理是OO模型设计,这世界上没有一个属性是孤立的,就说你的id,有单独存在的id吗?它必然是一个对象东西的id,这是符合逻辑的吧!模型设计是为了符合逻辑设计,我们是为了符合日常现实逻辑设计而设计,不是为了设计而设计。

如果你希望使用孤立的查询条件来看到id,使用request.getparameter也可以啊。

我们需要的方便必须建立在合理的逻辑基础上啊。