铁手剑谱

上善若水
数据加载中……

《Struts in Action》中文修订版 第14章

最近忙于修订《Javaserver Faces in Action》,都没有时间来修改这个文档了。我发现校对文稿真的是一个非常辛苦的事情,比起写来,要麻烦得多。何况我又不是一个细致的人。真是有些痛苦。今天抽点时间来继续将这部分发点出来。

很多人都问,Struts中用什么处理模型和数据。

我以前总说,这和Struts有什么关系?
从实际上来说,这的确和他没什么关系,因为他是M中立的。你可以使用你自己喜欢的任何M实现。但是正因如此,其实也还是和她有关系的,那就是它本质上的MVC的分层设计。

对Struts本身来说,作为最成功的一个MVC框架,实际上其最成功之处和精彩之处就是其中的C,即它是一个比较好的Front Controller 模式的实现。 很多地方,特别是其它利用了它的大型框架,都利用了他的这个优点。比如Oracle 的ADF。

但是对小型应用来说,很多人在争论,Action到底是M还是C。其实这并不重要,如果应用小型,你尽管可以在其中实现你的Biz Logic。这样的话,它就是M。否则,稍大型一些的应用,最好还是作为一个C来使用,至少是C的一个helper。

那么,具体的M怎么办呢?常规的做法是委托给POJO或者EJB。但是基于分层的目的,这中间通常是需要一个缓冲,那就是Facade。SUN的 官方Facade实现原来推荐的是Session EJB,这感情好,如果你能搞定它,业务和实体也可以尽管使用EJB。如果你不能负担EJB之痛,你可以使用POJO Facade来访问你的POJO实现的逻辑。

那么你的POJO生长在哪里?目前的Spring 等IoC容器正是一个好地方。实际上我想将Spring 成为是“框架之框架”。
OK,那么数据层又如何?嘿嘿,实际上离Struts太远啦,严格说起来他不想知道,也不用知道。你可以使用任何需要的持久实现,关键是作为DTO传递给C和V的结果,以及它们之间的转换。

本书中的ProcessBean是早期的一个POJO Facade,非常不错。但是不知为和这个包一直在Apache Commons的沙坑中跳不出来。而且如今有些陈旧了。
不过,本章其中的RSS和Lucene的讲述倒是不错。值得参考。

这里下载

posted @ 2005-08-17 17:24 铁手 阅读(1666) | 评论 (6)编辑 收藏
《Struts in Action》中文修订版 第13章

一直以为,国际化是个问题,本地化不是问题。
但是,老是有人层出不穷地问中文的问题,真是生生被他们气死。

有时间的时候准备写一篇文档,彻彻底底的描述一下Java的文字处理问题。不过这里先说几点最重要的:

1 先要搞清除字符集(CharacterSet)和编码方案(Encoding Schema)的意思;
2 Java系统内置Unicode的问题处理方式,这点是最基本的前提,不要忘了;
3 操作系统的代码页(CodePage)和字符集的关系;
4 JSP中,注意page指令的charset不是字符集的意思,实际上是一中Java内置的字符集和编码方案结合的编码;
5 不知道为什么总有人喜欢GB2312,记住:早过时了
6 解决编码问题的方法就是尽量统一到Java系统的编码上;
7 只有国际化才能彻底解决中文化的问题。尽量不要强行转码,如果每一个字符都转码,效率如何不用说了吧?
8 学会使用Local

好了,先说这么多。

下载这一章

posted @ 2005-08-04 14:01 铁手 阅读(1552) | 评论 (7)编辑 收藏
《Struts in Action》中文修订版 第12章

据Struts声称, Validator是从Struts0.5就开始使用了。从Struts1.1开始,Validator就成为Jarkarta Commons的一个组件。从而成为一个非常有用的通用工具。
关于Commons Validator的地址,可以访问:http://jakarta.apache.org/commons/validator/  。Struts发行包中带有这个包,也可以单独在此处进行下载。

Validator应用的Struts官方指南参见:http://struts.apache.org/userGuide/dev_validator.html 其中也有几个相关资源。

    使用中要注意的有几点:

  • 注意DynaValidator的使用与常规ActionForm的校验
  • 注意mapping中validate的配置
  • 注意action中validate方法与validator的关系

Validator是一个同用框架,你可以使用在很多地方,包括最近流行的Spring 之中。

本章下载

posted @ 2005-08-02 09:39 铁手 阅读(1261) | 评论 (2)编辑 收藏
liferay Portal 3.5

Liferay Portal 3.5发布了。仍然是Pro版和Enterprise版。
比上一版本相比,增加了几个显著的特色是:

  • 支持JSF,Myface的Portlet
  • 对Portlet URL进行了优化
  • 动态热部署的theme

其实我最喜欢的是他能够内建一个WorkFlow引擎,这样就非常完美了。
它的Pro版从3.0开始就该成Struts + Spring的架构,企业版中似乎也紧紧是使用了Session Bean作为Facede.那么在Pro版本中Spring 是如何使用的,倒要仔细研究。J2EE官方模式已近在提 POJO Facede的概念了(见J2EE Core Pattern, 2nd Ed.)。这里是否就是这种用法。因为,其后端业务部分几乎不用修改的。

这是其登录后的主页面:

liferayhome.jpg

我没注意到,页面上部右边有个下拉列表框,支持多个工作区的选择,这是否是上一个版本就有的功能。这个倒是非常不错。
它的CMS做得基础还可以,但是做得不是很友好。需要比较麻烦的定义。如果支持分类学(Taxonomy
就好了。一种以为,CMS不支持MetaDate和Taxnomy根本算不上content Management。这点,还不如PHP的Drupal做得好。最近SpringFramework网站的改版就是使用了Drupal框架。我觉得,就PHP阵营来说,Drupal比Mambo还要好些。不过后者似乎运作的很好,连国内也有很多FANS。

他的HOT THEME的功能,发行包中带了四个Theme,Liferay网站上一个很COOL的并没有随之发行,需要另外下载。而且原来的很多配色方案,也只有几种了。

另外就是,原来支持认为他的i18n中中文做得不好,有很多奇怪的翻译,而据说他们的核心团队还有中国人的。这次我选择中文Local,居然没反应,仍然是英文界面。不是是何原因?我使用的是Pro版本,不知Ent是否有此问题。

这是一个theme:
liferaytheme.jpg

posted @ 2005-08-01 09:54 铁手 阅读(1759) | 评论 (2)编辑 收藏
《Struts in Action》中文修订版 第11章

我一直认为tiles应该从Struts中独立出来,成为一个单独的项目。至少也应该放入Commons之中。不过,到Struts1.2版本中仍然没有动静。Shale对此也没有明确的说法。

两大主要的布局工具,相比而言,我还是觉得Tiles要好用一些,而且方式优雅。对此,Struts分发包所带的例子tiles-Document就是一个非常有用的学习例子。(很多人来消息说,想要通过例子学习Struts,那么朋友,你可曾研究过Struts的自带例子?如果没有,那就好好看一看吧。关于Struts中的示例程序,大家可以参考我前面所写的“Struts秘籍”中的一篇。)。Tiles不仅是对布局,而且本身还自带对菜单的支持。而且,著名的开源门户项目 liferay  就是使用的Tiles作为布局工具,实现了portlet的表现,甚是了得。(另一个很好的portal ExoPlatform则是使用了JSF。)
当然,Sitemesh也非常不错,而且由于使用了装饰器模式和Servlet Filter,灵活性更高。你可以用它做你爱做的事情,做你想做的事情。不过,似乎因为Sitemesh是 opensymphony 的项目,好像大家就以为它只能与WebWork配对使用,或者心存这种假设。其实不然,呵呵,这种假设不成立。它们两个都是中立的。完全可以根据你的需要选择使用。SiteMesh也完全可以用于Struts项目。
还有一个项目是Struts-Layout,这个项目则主要偏重于细微的表现,比如树型,面板之类的。较少用于总体布局。不过这些对JSF来说都是小Case了。

IBM WSAD本身支持一种模板的布局处理方式,大家可以参考。它实际上是一套可以由IDE管理的代码复制和重用机制。对整体布局和网站基础,比如导航、菜单、面包屑、SiteMap等支持也非常不错。大家也可以研究一下。

开发工具来说,最好的Struts开发工具还是M7的Nitrox,对Tiles的支持也非常之棒。可惜不是免费的。也鲜见破解版本。另外就是Exadel Studio,也非常不错,这方面好像是在学习M7。而且它前些时候刚推出免费版本。
当然,各个商业IDE还是对其支持的不错。

这一章感觉并为把Tiles讲解够深。至于Tiles的高级应用,在Tiles-Document示例应用中,可以找到一个相关的链接。

在这里下载
这一章。

posted @ 2005-07-29 10:30 铁手 阅读(1902) | 评论 (10)编辑 收藏
仅列出标题
共26页: First 上一页 10 11 12 13 14 15 16 17 18 下一页 Last