简化Spring--View层

类别:Java 点击:0 评论:0 推荐:

Spring少得可怜的几个tag基本上是鸡肋,完全可以不要。 而Spring开发中的那些Simple Form tag又还没有发布。所以一切还要自己从头开始。

1.form 的数据绑定

Spring的Tag主要用来把VO的值绑到input框上。但是,和Struts一样,需要逐个Input框绑定,而且语法极度冗长,遇到select框还要自己进行处理.....典型的Spring Sample页面让人一阵头晕.

而jodd的form tag给了我们懒人一个懒得多的方法,只要在<form>两头用<jodd:form bean="myVO"></jodd:form>包住,里面的所有input框,select框,checkBox...统统自动被绑定了,这么简单的事情,真不明白struts,spring为什么不用,为了不必要的灵活性么?

不过,jodd有个致命弱点是不能绑定内嵌对象的值。比如Order(订单)对象里有个Customer(顾客)对象,jodd就不能像 struts,spring一样用如下语法绑定:

<input name="customer.customerNo">

这是因为它的beanUtils比Jakata Common弱的缘故,所以用了一个错误的思路。

于是动用beanUtils改了一下,代码在这里下载。

2. DataGrid

除了detail form, View层的数据绑定还有另外两种很典型的形式:
一种是可编辑的DataGrid, 常用于基础资料的维护界面.
而另外一种DataGrid纯粹显示数据,不可以修改.  例子如订单的列表.

DisplayTag和ValueList都属于这种形式的Tag Library,萝卜青菜各有所爱,我自己喜欢ValueList多一些.
因为两者都不可能100%合适项目的要求,基本上都需要自行做很多扩展才会成为自己心爱的DataGrid.
扩展的时候,ValueList的架构要灵活轻便一些,displayTag做得太霸道了.
花了不少时间看ValueList的原码,自己的DataGrid也初步成型了, 要赶快另外写一篇文档来记下ValueList的扩展要诀.
3.未来
但无论如何,JSP的TagLib想做出标准组件化的东西都不容易,更别提如何重回Delphi,VB的RAD时代。所以webwork,Tapestry和JSF才有了存在的理由,Spring也对他们作了相应的支持。因为《JSF in action》,加上对标准化东西的偏爱,我个人最喜欢JSF,Spring还有一个Spring-JSF的子项目。但是他出生也最晚,能否长大成人还完全是个未知之数,虽然最近Struts-Shale为它加了点人气。

本文地址:http://com.8s8s.com/it/it11503.htm