隔叶黄莺 The Blog of Unmi

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

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

2008年5月5日 #

     摘要: 我的环境是 Tomcat 5.0.28 + Struts2.0.6 (web.xml 配置的是支持 Servlet 2.4),testTooltip.jsp 页面里用了 tooltip 和 tooltipConfig 属性。

打开浏览器,浏览那页面时鼠标移到输入框前面那个图标上稍呆会儿的效果有些意外:

1) 出现一个 JS 的提示层,在下方,然后又出现一个图片的 alt/title 属性的提示。两种提示产生了重叠,十分难看。
2) 我明明设置了 tooltipConfig="#{'tooltipFontColor':'#ff0000'}",JS 的提示层文字应为红色,可不是那么回事。

初见 Struts2 的 Tooltip ,对它抱过很大的期望。曾以为它可以实现鼠标悬停在输入框上时用层提示,可不尽然。只是在输入框前面多出一个 Tip 图标,鼠标放上去倒也会出现一个提示层,倒也罢,可偏偏那个图片的 alt/title 奈不住寂寞的跳了出来。  阅读全文
posted @ 2008-05-05 23:59 隔叶黄莺 阅读(1031) | 评论 (3)编辑 收藏

2008年5月3日 #

     摘要:
本程序是基于 dp.SyntaxHighlighter 写的代码语法着色的工具。支持的语言有

java/xml/sql/jscript/css/cpp/c#/python/vb/perl/php/ruby/delphi。
可方便用于你的博客中粘贴代码,只要自定相应的样式 (highlight.css 的内容,.Text 支持自定义样式或在模板里加上语法样式),然后复制用这个工具生成的 HTML 代码就能让你的代码着高亮显示。

可以加入更多语种的支持,本程序就是在 dp.SyntaxHighlighter 的基础上扩展了对 Perl 语言的支持,网上可以找到相应语法的  阅读全文
posted @ 2008-05-03 17:39 隔叶黄莺 阅读(734) | 评论 (7)编辑 收藏

     摘要: 和 GTK、QT、SWT、SWING 一样,wxWidgets 也是一种开源跨平台的 GUI 框架。因 wxWidgets 和 MFC 有些渊源,有些亲近,故要体验一番 wxWidgets。现在最新版是 2.8.7。wxWidgets 程序还可运行于 Windows CE、Palm OS。不但包括 GUI,还有 Media、Socket、ODBC 等库。

详情请见 wxWidgets 的官方网站是:http://www.wxwidgets.org

本篇介绍 VC++6.0 下如何搭建 wxWidgets 的开发环境,包括编译 wxWidgets 源码和配置 VC 环境。所用 wxWidgets 的版本是 2.8.7。

第一步:下载并安装 wxWidgets  阅读全文
posted @ 2008-05-03 02:20 隔叶黄莺 阅读(90) | 评论 (0)编辑 收藏

2008年5月1日 #

     摘要: 六. 介绍 Quartz Web 程序

早期的 Quartz 框架开发者意识到一个 GUI 对于某类用户群体是必需的。几年前,一个 Web 应用被创立,它可用于管理 Quartz 框架。虽说是历经了几年有相当投入的开发,但不得不说的,总是时断时续的。

近来出现有更多的要求对这个应用的更新与支持,因而又重新吸引了新的开发者自愿的工作并使之保持不断更新。这个应用就是知名的 Quartz Web 程序。(译者注:实际上这个应用程序基本驻步不前,当前版本还是 RC-1 2004-06-26 22:00 的,仅作参考来应用)

·Quartz Web 程序的截屏

Quartz Web 程序主界面的左上方展示了它所拥有的特征列表(看 图 13.4)。  阅读全文
posted @ 2008-05-01 22:50 隔叶黄莺 阅读(1168) | 评论 (2)编辑 收藏

     摘要: 五. 使用 ServletContextListener

很值得一提的是你可以配置和集成 Quartz 到 Web 应用的另一种方式。从 2.3 版本的 Servlet API 开始,你能创建监听器,由容器在其生命周期中的某个特定时间回调。其中的一个监听器接口叫做 java.servlet.ServletContextListener,它包括有两个方法:

public void contextInitialized(ServletContextEvent sce);
public void contextDestroyed(ServeltContextEvent sce);

容器会在启动和关闭的时候相应的调用这两个方法。这就可以在 contextInitialized() 方法中初始化 Quartz Scheduler,并通过 contextDestroyed() 方法关闭它。代码 13.5 描述了这种用法:  阅读全文
posted @ 2008-05-01 16:38 隔叶黄莺 阅读(966) | 评论 (1)编辑 收藏

2008年4月30日 #

     摘要: 四. QuartzInitializerServlet 可谓救命草

Quartz 框架包括一个叫做 org.quartz.ee.servlet.QuartzInitializerServlet 的 Java 类,它继承自标准的 HttpServlet。你可应用这个 servlet 于你的 Web 应用中,它将会创建一个 StdSchedulerFactory 实例并在你的程序后续中一直可用。通常的,它就是做了命令行版本的 Quartz 程序的 main() 方法所做的事性。

QuartzInitializerServlet 在 Quartz 1.5 中有所改变

在 Quartz 的 1.5 发布版中,QuartzInitializerServlet 被修改为会存储 StdSchedulerFactory 实例到 Web 应用的 ServletContext 中。这就允许你的程序在任何地方都能访问到 Scheduler 实例,只要获取到了 HttpServletRequest 或 HttpSessi  阅读全文
posted @ 2008-04-30 01:26 隔叶黄莺 阅读(778) | 评论 (1)编辑 收藏

2008年4月29日 #

     摘要: 你尽可以做个良民,为群体效率而本份的遵循个人秩序,然而事与愿违,非但不能因此提升群体的效率,而你势必失去诸多的机会,不会有人褒奖你,更得不到同情,只得自觉的天真。

1. 模板目录->主题目录->主题(模板文件) 这是模板/主题的目录组织方式。以实际为例,打开 struts2-core-2.x.x.jar 可以看到里面有一个 template,在 template 下有5个目录 ajax、css_xhtml、simple、xhtml 和 archive,其中前四个分别是 ajax、css_xhtml、simple、xhtml 主题的目录,每个主题目录中有各自的模板文件,主要是 ftl 文件,还有 css 和 js 文件。最后一个 archive 是归档的主题目录,其下又有 ajax、simple、xhtml、模板文件是 .vm 文件。由此可知 Struts2 大力推荐的模板语言是 FreeMarker,而不是 Velocity,以后要好好看看 FreeMarker,只知道 FreeMarkder 更 XML 化。

2. 上面看到模板目录名是 templ  阅读全文
posted @ 2008-04-29 00:46 隔叶黄莺 阅读(983) | 评论 (5)编辑 收藏

2008年4月25日 #

     摘要: 三. 在 Struts 框架中使用 Quartz

第一步就是要下载 Apache Struts 并创建好你的 Web 应用的目录结构。Struts 框架可从 Apache Struts 站点 http://struts.apache.org 上找到。也很欢迎你直接抓取到源代码来编译它,尽管你能够及时下载到最新版本的二进制版。

因为 Quartz 不直接依赖于 Struts 框架,所以你也就不必为该使用哪一版本的 Struts 而忧心。只管下载到当前的最新版本就是了。不过,你应该认识到,Struts 和 Quartz 框架共同依赖了一些第三方的包。实际上,在前面列出的 Quartz 所需要的库也是 Struts 框架所必须的。就是要留心混在一起不同的版本,如在最后一节的警告所注明的。

·创建你的 Web 应用目录结构

下载到了 Struts 之后,你就可以创建你的目录结构并引入必须的文件。作为例子,我们将创建一个虚构的 Web 应用,叫做 Job 管理控制台。因为这仅是一个假想的应用,我们  阅读全文
posted @ 2008-04-25 23:47 隔叶黄莺 阅读(995) | 评论 (3)编辑 收藏

     摘要: 有一日,帮外公翻腾出他箱底的照片进行数字化留存,已是耄耋之年的外公端详起那些记忆来,看到都是一同革命的热情小伙,不时感慨:唉!好多人都不在啦!

1. 可以用来在 JSP 页面直接调用 Action,用 name 指定 Action,executeResult(默认为 false) 指定是否包含那个 Action 转向视图的内容;executeResult 会把视图的所有内容输出在标签位置。ignoreContextParams(默认为 false),是否将本页的请求参数传到那个 Action。

2. 用来实例化 JavaBean,标签内使用 来指定属性。在标签内,bean 实例位于 ValueStack 顶端,标签结束则自动清除。如果指定的 id 属性,还会把该实例放到 Stack Context 中。name 属性必须,指定 Bean 类的全限名称。不知道复杂的属性该如何用 或其他方式来指定。  阅读全文
posted @ 2008-04-25 00:24 隔叶黄莺 阅读(1152) | 评论 (3)编辑 收藏

2008年4月24日 #

     摘要: 前面记载过一篇 Java 执行 SQL 脚本文件,这里边完全是由自己写代码来分离出脚本中的每一个 SQL 语句的,有不少缺陷。当时还不太清楚 ANT 本身提供了功能很强的执行 SQL 语句和脚本的 SQL Task 可用。以下依次简单介绍如何在 build.xml 中执行 SQL 语句或脚本;Java 代码中如何调用 ant 的 SQLExec 类执行 SQL 脚本,最后考虑 ant.jar 的个头说大也不小,1M 多,如果只用于执行 SQL 脚本,则绝大部分代码就是垃圾,所以从同抽离出需要的两个类 JDBCTask 和 SQLExec,完全去除了对 ant.jar 包的依赖。

有关 ant 的更详细的记录请参见,http://ant.apache.org/manual/CoreTasks/sql.html 。  阅读全文
posted @ 2008-04-24 21:03 隔叶黄莺 阅读(1027) | 评论 (0)编辑 收藏

2008年4月23日 #

     摘要: 第十三章. Quartz 和 Web 应用

到目前为止,我们与 Quartz 框架的交互主要还是通过命令行。对于有些使用者,比如我的一个大学计算机科学老教授(它曾每天都告诉我说,"GUI 是给能力差的人用的!"),使用命令行让他们很乐意接受。当应用程序被开发完成后,它们常要移交给终端用户或支持团队。在命令行应用程序上层架设一个 GUI 前端会非常有帮助也是很增值的。本章记述如何在 Web 应用中用 Quartz 来使得部署和维护 Job 更轻松。

一. 在 Web 应用中使用 Quartz

至此,你已经看到过许多在 J2SE 环境中独立运行的 Quartz 的例子。在第十章,"J2EE 中使用 Quartz",你也学到了 Quartz 良好的运作于 J2EE 环境中。但是,我们还没有向你介绍的是如何部署 Quartz 到一个 Java Web 应用(通常简写为 Web app)中。这就是本章唯一意图  阅读全文
posted @ 2008-04-23 23:40 隔叶黄莺 阅读(1059) | 评论 (4)编辑 收藏

2008年4月14日 #

     摘要: 中世纪的欧洲《礼仪书》中说:痰不要吐到桌子上,也不要飞过桌子。1774年,欧洲的《礼仪与基督教礼貌守则》中说:我们再也不能原谅那些把痰吐到窗户外、墙上或者家具上的人。可见,欧洲人的素质也是在他们工业化富了之后的事。至少那个时候,我们的老祖宗再不争气,也绝不会把痰吐到桌子上。

1. OGNL 中有生成 List 和 Map 的表达式,分别是:{e1,e2,e3,...} 和 #{key1:val1,key2:val2,...}。对集合 OGNL 提供了两个操作符 in 和 not in,如:
---- not in 的用法当然是一样的了。
之外,OGNL 还允许通过某个规则取集合的子集
·? :取出所有符合条件逻辑的元素
·^:取出符合条件的第一个元素
·$:取出符合条件的最后一个元素
请将上面这三个符号与正则表达式的表示法联系起来  阅读全文
posted @ 2008-04-14 23:24 隔叶黄莺 阅读(1080) | 评论 (0)编辑 收藏

2008年4月13日 #

     摘要: Ubuntu 8.0.4 已在万众企盼当中,本月 4 月 24 日正式发出,代码版本已封闭。继续写一个 Ubuntu Linux 7.10(alternate) 似乎十分多余,那就留给届时还会怀念 Ubuntu 7.10 的人士,也给自己留个底吧。

当然,每写个东西,总是要负责的,非轻率地转抄,终以本人实践真实记录。前面有篇是讲 Ubuntu 7.10(Desktop) 的安装,在 Windows 平台下从硬盘安装 Ubuntu Linux 7.10(Desktop),这里记载的是 Ubuntu 7.10(alternate) 的安装,是通过 grub4dos 来加上一个 Ubuntu 启动项,从而能从更盘引导。个人也更偏爱于用 alternate 版的光盘来安装,安装其他 Linux 发行版养成的习惯。

第一步,软件准备
1) 下载到 ubuntu v7.10-alternate-i386.iso 文件,可从这个链接 http://releases.ubuntu.com/releases/gutsy/ubuntu-7.10-alt  阅读全文
posted @ 2008-04-13 23:50 隔叶黄莺 阅读(972) | 评论 (0)编辑 收藏

     摘要: 在 Tomcat 5.0.28 下运行一个 Struts2 应用,其中使用了 EL 表达式,执行后却发现总也得不到期望的结果。于是百般找寻,终于发现是 web.xml 中用的声明是:

"http://java.sun.com/dtd/web-app_2_3.dtd">

而不是 Servlet 2.4 的声明,致少不能支持 EL,编译出来的 JSP 对应 Java 源代码也有不同。本篇就此进行深入分析,对比不同 web.xml 配置时,以及在分别使用 EL 和 OGNL 时产生的不同的编译结果。

最后得出结论,若想在 Servlet 2.3/JSP 1.2、JDK 为 1.4 的情况下用 Struts2 的第二条准则是:EL 换成 OGNL 表达式。在这种环境下使用 Struts2 虽说是何苦,但对于许多未能及时升级应用服务器的用户来说也是无奈之举。  阅读全文
posted @ 2008-04-13 14:06 隔叶黄莺 阅读(1047) | 评论 (4)编辑 收藏

2008年4月11日 #

     摘要: 吾同人数进寺庙,却从未点过一柱香。概因精神世界里终无所寄托。既不为生儿还是女而筹算,也无须因落下亏心事要请得神灵庇佑。想来,真要的东西,阿弥陀佛也给不了。在物价飞涨之际,谁能给你加薪,何来民主,看看这辈子能不能有机会参与选一回国家领导人,少说几句了,就这点言论自由了。

1. Struts 2 标签库以 OGNL 表达式为基础,对集合、对象的访问功能更强了。Struts 2 的标签用统一的前缀,一般为 "s",不再像 Struts1 那样分 html、bean、logic 等多个命名空间的标签。如果在 JSP 2.0 之前用过 JSTL,也就知道什么是 OGNL 表达式的。

2. Struts2 提供了很多 Struts1 标签没有的东西,如日历、树型控件、Tab页等;同时可借助 DWR,有标签支持 Ajax,除此还提供了主题、模板,还允许在页面中使用自定义组件  阅读全文
posted @ 2008-04-11 02:32 隔叶黄莺 阅读(937) | 评论 (1)编辑 收藏

仅列出标题  下一页