struts 优劣论(一)

时刻准备跑题的文章。

做了两个 struts 标记, AjaxContainer, AjaxForm,在 struts 中实现异步通信的功能。
因为以前做过不少这样的东西,整合时游刃有余,前后只花了一天时间。现在愈发反对从上到下的设计,完全倾向于这种倒回来提炼的开发轨迹。
回顾起来用 struts已经有几个月了,有必要做个回顾。连带 jsp 不分。
优点(&&|| 特点):
1)可以有自己的标签。
2)三层框架,结构清晰。
3) params 被委派给 ActionForm,籍此可以实现Params->Object的映射。这种映射对于动态语言没太大意义,但对于java来说,还是很有价值的。
4) 在PO映射过程中,可以进行数据检核。这之间起作用的是 Validator。
5)通过资源文件实现国际化。
6)使用action-mapping分派页面流程。
7)通过tiles实现页面分块。
8)使用逻辑标签处理页面上的流程。
分析:
自制标签:对于程序员来说,这是很有价值的事。可以把颜色对话框做成一个标签,挂在<input type=hidden> 上,把以前的心血凝聚成可复用的标记,感觉很好。
对照ASP.NET,jsp没有可视化的编辑器,界面设计时的感觉不是很好。

三层框架:struts自己实现的实际上是两层,Action一层,Jsp一层,取决于开发人员的自觉,可以在Action后增加两层,由Action发起调用。

PO映射。个人认为struts的要义就在PO映射,需要OR映射可引入Hibernate。由于此映射只负责把Params组装成Object,后续的层依然要写复杂的语句。

 void post(T t){
     insert into t values(t.name,t.birth)
}
并不比
void post(string name,string birth){
    insert into t values(name,birth)
}
来的更简洁。何况实际开发中用 DynamicForm,这样的映射意义不大。

数据检核。通过配置文件实现数据检核本来是很可取的。奈何在 struts-config已经定义好了字段属性,在validation配置文件中还要写一次。窃以为检核器应在struts-config的字段定义中直接编写。

资源文件实现的国际化。本来 jsp 没有可视化开发工具,要一眼定位到某行代码本来就已经很困难了。使用资源文件无疑大幅度扩大了这种难度。

逻辑标签。毫无疑问,这是一个垃圾功能。

Action-mapping 实现的流程控制。鸡肋。在配置文件里要写一次,在代码里还要写一次。完全不比为Action 增加一个postTo方法的效率高。
需求变动导致的维护成本。
考虑一个方案是否有价值,如果我是老板,我一定问,如果客户要改一个功能,要在表单上多放一个字段,你要做多久。
如果要多来一个字段,struts需要:
在 struts-config 中增加一个字段;
在 validation 中增加一个检核;
在 resource 中增加一个字段名;
在后台改 sql 语句;
在 jsp 增加一个 tag.

对照使用 asp.net,需要:
使用sql生成器重新生成sql语句;
拖放一个控件;
指派dataSource;
拖放一个检查器,将它和控件绑定;
收工。

看起来步骤差不多,有经验的人应该明白到底效率差异有多大。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值