隔叶黄莺 The Blog of Unmi

〖隔叶黄莺三四声,挂壁飞瀑千万尘。若是人间无净土,此处为何妙语真! 隔叶黄莺四字,本非取自此句,而有寄寓他意,因见妙语,亦与予心合!〗

BlogJava 首页 新随笔 联系 聚合 管理
  209 Posts :: 84 Stories :: 392 Comments :: 0 Trackbacks

02 2008 档案

     摘要: 米洗毕,水适量,盖合上,心摇摆,总觉水多了一分或是少了几点,于是重又加上或倒出少许,其实这丁点份量完全无碍煮出香喷喷的饭来。及至将熟之际,亦有犹豫,心中默数至少10,如再有不定辄至20,掐火,20对最终质量来说或有所损。

1. Struts2 的 Action 中可直接用属性来封装请求参数和处理结果,此谓之属性驱动。也可以像 Struts1 那样使用专门的 ActionForm 来处理请求参数和结果,只不过 Struts2 用的是一个更单纯的 POJO,这就做模型驱动;此时的 Action 需要实现 ModelDriven 接口,并实现其 getModel() 方法将 Action 与对应 Model 相关联。

2. 例子说明采用模型驱动的 Action (UserBean 是一个普通 JavaBean,其中定义了 username 和 password 两个属性):
public class LoginAction implments Action, ModelDriven{
UserBe  阅读全文
posted @ 2008-02-28 00:06 隔叶黄莺 阅读(1286) | 评论 (1)  编辑

     摘要: 此时计算机是基本无法分辨是何种 addres (判断有无 @ 吗?不妥,再来个别的 address 怎么办)。当然,你说分别换成 不行了吗?但这要修改 DTD 文件,也许你没权利修改这些个 DTD 文件,即使行的话,同样再来个别的 address 是不又要修改 DTD 文件?

由此就引入了命名空间 (Namespace) 分别来区分以上那两个 address,甚至更多的 address。有了命名空间,你不必改写 DTD,命名空间一般会用一个 URI 来标定唯一性。加入命名空间后完成 XML 文件如下  阅读全文
posted @ 2008-02-27 00:20 隔叶黄莺 阅读(820) | 评论 (6)  编辑

     摘要: Struts 的官方网站 http://struts.apache.org/2.0.11/index.html 列出了 Struts 2 的平台要求有三:

· Servlet API 2.4

· JSP API 2.0

· Java 5

但不知道官方的声明 Struts 2 要求的容器规范是 Servlet 2.4/JSP 2.0,是因为用到它们的什么特性了。或者是如果我要在只实现到 Servlet 2.3/JSP 1.2 的容器中运行 Struts 2 Web 应用程序该注意些什么,哪些特性不能用。

公司目前的应用服务器是 WAS 5.1,但对于将来新上的项目本人却有那么一种冲动。不知哪位有在 Servlet 2.3/JSP 1.2 下开发 Struts 2 应用程序的经历,可否教授一番,万分感激!  阅读全文
posted @ 2008-02-25 22:31 隔叶黄莺 阅读(889) | 评论 (2)  编辑

     摘要: 常有这样的梦:不知何来一本似乎是无字天书,而其中的字句却是慢慢地、渐显可辨。同时现实中的自己完全能察觉这是一个梦,极怕即刻醒来,想多记取那些天外之语。但总不能如愿,醒来时还留有某些字句痕迹,再过后就全然忘却。仿佛进入的是一个太虚幻境。

1. 元素的一个前所未有的特性是,name 属性可以用通配符,class 和 method 属性中可以用 name 中的匹配参数,{0}/{1} 的形式。举两个例子说明:

URL 是 registAction.action 时,会执行 LoginRegistAction 类实例的 regist() 方法

URL 是 Book_save.action 时,会执行 ac  阅读全文
posted @ 2008-02-24 14:30 隔叶黄莺 阅读(1286) | 评论 (3)  编辑

     摘要: 三. cron 表达式的格式

Quartz cron 表达式的格式十分类似于 UNIX cron 格式,但还是有少许明显的区别。区别之一就是 Quartz 的格式向下支持到秒级别的计划,而 UNIX cron 计划仅支持至分钟级。许多我们的触发计划要基于秒级递增的(例如,每45秒),因此这是一个非常好的差异。

在 UNIX cron 里,要执行的作业(或者说命令)是存放在 cron 表达式中的,在第六个域位置上。Quartz 用 cron 表达式存放执行计划。引用了 cron 表达式的 CronTrigger 在计划的时间里会与 job 关联上。

另一个与 UNIX cron 表达式的不同点是在表达式中支持域的数目。UNIX 给出五个域(分、时、日、月和周),Quartz 提供七个域。表 5.1 列出了 Quartz cron 表达式支持的七个域。

表 5.1. Quartz Cron 表达式支持到七个域  阅读全文
posted @ 2008-02-23 13:52 隔叶黄莺 阅读(1043) | 评论 (11)  编辑

     摘要: 在这个陌生的城市里,的确承受着巨大的压力。房东的驱赶与无理的加价,想置个家电须顾及到搬迁。也开始学会了算计着过活,两块五与三块的公交,宁愿等待与拥挤,就连省下一顿饭钱都能暗自庆幸。周末了,老老实实呆在家里吧!

1. 按这个顺序加载 Struts2 的常量,struts-default.xml、struts-plugin.xml、struts.xml、web.xml;后加载的会覆盖前面的同名常量。强烈不推荐在 web.xml 中配置 Struts2 常量。

2. Struts1 中有一种 Action 类型是 ForwardAction,而在 Struts2 中相应的配置方式是 /showcase.jsp,Showcase.action 直接映射到 /showcase.jsp。

3. struts.xml 中 的 namespace (命名空间) 相当于 Struts1 的模块的概念,但比 Struts1 的  阅读全文
posted @ 2008-02-23 01:00 隔叶黄莺 阅读(1253) | 评论 (2)  编辑

     摘要: 第五章. Cron 触发器及相关内容

我们在上章中有承诺过会花更多时间来讲 Quartz 的 CronTrigger,所以不会让你失望的。SimpleTrigger 对于需要在指定的毫秒处及时执行的作业还是不错的,但是假如你的作业需要更复杂的执行计划时,你也就要 CronTrigger 给你提供更强更灵活的功能。

一. Cron 的快速一课

cron 这一观念是来自于 UNIX 世界。在 UNIX 中,cron 是一个运行于后台的守护程序,它负责所有基于时间的事件。尽管 Quartz 除相同的名字和相似的表达式语法外,并未分享到 UNIX cron 别的东西,我们还是值得花几个段落去理解 cron 背后的历史。我们这里的目标不是搞混 UNIX cron 表达式和 Quartz 的 cron 表达式,但是你应该了解 Quartz 表达式的历史,并探索为什么他们运作起来很像。这儿明显有许多有意图的相似性。  阅读全文
posted @ 2008-02-21 23:13 隔叶黄莺 阅读(1208) | 评论 (11)  编辑

     摘要: 连续几日熬夜,以致左胸又起闷痛感,何来如此辛苦?不由自忖,人生至今,印象中从来就没有过安逸与幸福感。常要回避刺疼。

1. WebWork 的核心控制器是 ServletDispatcher,映射到 *.action 的 即可。在 WebWork 与 Struts2 的 struts.xml 和 struts.properties 相对应的分别是 xwork.xml 和 webwork.properties,文件内容几乎一样,只几个关键字的差异。

2. Struts2 的 struts.xml 中 的 name 属性相当于 struts1 的 的 path 属性,但在这里不需要以 "/" 开始。

3. Action 中使用业务逻辑组件实例时,通常不直接 New,而会通过工厂方法或 IOC 容器。虽然 WebWork 有 IOC 容器,但 Struts2 通常会使用 Spring 的 IOC。

4. 可把 struts.xml 拆成多个文  阅读全文
posted @ 2008-02-21 00:20 隔叶黄莺 阅读(1504) | 评论 (7)  编辑

     摘要: 记笔记,尤其是在 Blog 里记,实则是浪费时间。让学习、阅读的速度以数量级的下降,收获时当时掌握的更细,却并不代表着真记得牢。一小段时间不用它,同样可以忘得很干净,也就是方便于以后能由此泛起些涟漪,如能抛砖引玉就更幸运了。入正题:

1. 记得 Struts1 的 struts-config.xml 是放在 WEB-INF 目录下的,Struts2 的 struts.xml 却要放到 WEB-INF/classes 下的,傻眼了吧,反正我是。没看仔细之前,总给我报 There is no Action mapped for namespace / and action name Login. - [unknown location] 错误。因未在 web.xml 指定 struts.xml,所以用 ClassLoader 来加载它了。

2. 最简单的 Struts2 应用都要用到 freemarker-xxx.jar 包,还没弄明白它在其中所扮演的角色。

3. FilterDispatcher 要处理所有的 Web 请求,所以它的  阅读全文
posted @ 2008-02-19 23:33 隔叶黄莺 阅读(1503) | 评论 (0)  编辑

     摘要: Struts 从1.1使用到1.3已有多年,都升成2了,却来了个大变脸,须重新审视一番了。从头学习,记下笔记,以要点式。

1. Struts2 与 Struts1 似乎没什么血缘关系了,承自于 WebWork,直害 WebWork 不再推出新版本了,原先的 WebWork 使用者只需顺其然,即是水道渠成。

2. Struts1 的核心控制器是 ActionServlet,而 Struts2 的核心控制器是 ServletDispatcher。Struts2 的业务 Action 会在运行时生成 Action 代理。

3. Struts1 的 Action 须继承抽象 Action 类,侵入了 Servlet API;而 Struts2 的 Action 可以实现 ActionSupport,或者只要一个纯净的 POJO 来充当,完全与 Servlet 绝缘。也因此带来测试性 Struts2 要比 Struts1 强,可把 Struts TestCase 扔到一旁去了。

4. Struts1 在运行时一个 Actio  阅读全文
posted @ 2008-02-18 23:45 隔叶黄莺 阅读(1594) | 评论 (2)  编辑

     摘要: 今夜,打开 TheServerSide.Com,看到 MyEclipse 又出新品 MyEclipse Blue Edition,专为 WebSphere 开发者打造的。WebSphere 用户也算是有福了,想想以前在 MyEclipse 里联用 WebSphere Server 是一件多么痛苦的事情啊,所以不得不在本地用 Tomcat 测试,一搬到正式环境难免要受到兼容性的折磨。WSAD 和 RAD 提供的功能自是不必说,但慢的难以忍受,快来体验一下 MyEclipse Blue Edition 吧。

原文翻译如下:

Genuitec 今日宣布发布一款名为 MyEclipse Blue Edition 的新产品,它针对的是 IBM Rational Application Developer (RAD) 和 WebSphere 的开发。  阅读全文
posted @ 2008-02-18 00:13 隔叶黄莺 阅读(1322) | 评论 (1)  编辑