你尽可以做个良民,为群体效率而本份的遵循个人秩序,然而事与愿违,非但不能因此提升群体的效率,而你势必失去诸多的机会,不会有人褒奖你,更得不到同情,只得自觉的天真。
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 化。 Read More
三. 在 Struts 框架中使用 Quartz
第一步就是要下载 Apache Struts 并创建好你的 Web 应用的目录结构。Struts 框架可从 Apache Struts 站点 http://struts.apache.org 上找到。也很欢迎你直接抓取到源代码来编译它,尽管你能够及时下载到最新版本的二进制版。
因为 Quartz 不直接依赖于 Struts 框架,所以你也就不必为该使用哪一版本的 Struts 而忧心。只管下载到当前的最新版本就是了。不过,你应该认识到,Struts 和 Quartz 框架共同依赖了一些第三方的包。实际上,在前面列出的 Quartz 所需要的库也是 Struts 框架所必须的。就是要留心混在一起不同的版本,如在最后一节的警告所注明的。 Read More
有一日,帮外公翻腾出他箱底的照片进行数字化留存,已是耄耋之年的外公端详起那些记忆来,看到都是一同革命的热情小伙,不时感慨:唉!好多人都不在啦!
1. <s:action .../> 可以用来在 JSP 页面直接调用 Action,用 name 指定 Action,executeResult(默认为 false) 指定是否包含那个 Action 转向视图的内容;executeResult 会把视图的所有内容输出在标签位置。ignoreContextParams(默认为 false),是否将本页的请求参数传到那个 Action。
2. <s:bean .../> 用来实例化 JavaBean,标签内使用 <s:param name="" value=""/> 来指定属性。在标签内,bean 实例位于 ValueStack 顶端,标签结束则自动清除。如果指定的 id 属性,还会把该实例放到 Stack Context 中。name 属性必须,指定 Bean 类的全限名称。不知道复杂的属性该如何用 <s:param .../> 或其他方式来指定。 Read More
前面记载过一篇 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 。 Read More
第十三章. Quartz 和 Web 应用
到目前为止,我们与 Quartz 框架的交互主要还是通过命令行。对于有些使用者,比如我的一个大学计算机科学老教授(它曾每天都告诉我说,"GUI 是给能力差的人用的!"),使用命令行让他们很乐意接受。当应用程序被开发完成后,它们常要移交给终端用户或支持团队。在命令行应用程序上层架设一个 GUI 前端会非常有帮助也是很增值的。本章记述如何在 Web 应用中用 Quartz 来使得部署和维护 Job 更轻松。
一. 在 Web 应用中使用 Quartz
至此,你已经看到过许多在 J2SE 环境中独立运行的 Quartz 的例子。在第十章,"J2EE 中使用 Quartz",你也学到了 Quartz 良好的运作于 J2EE 环境中。但是,我们还没有向你介绍的是如何部署 Quartz 到一个 Java Web 应用(通常简写为 Web app)中。这就是本章唯一意图 Read More
中世纪的欧洲《礼仪书》中说:痰不要吐到桌子上,也不要飞过桌子。1774年,欧洲的《礼仪与基督教礼貌守则》中说:我们再也不能原谅那些把痰吐到窗户外、墙上或者家具上的人。可见,欧洲人的素质也是在他们工业化富了之后的事。至少那个时候,我们的老祖宗再不争气,也绝不会把痰吐到桌子上。
1. OGNL 中有生成 List 和 Map 的表达式,分别是:{e1,e2,e3,...} 和 #{key1:val1,key2:val2,...}。对集合 OGNL 提供了两个操作符 in 和 not in,如:
<s:if test="'foo' in {'foo','bar'}" ... </s:if> ---- not in 的用法当然是一样的了。
之外,OGNL 还允许通过某个规则取集合的子集
·? :取出所有符合条件逻辑的元素
·^:取出符合条件的第一个元素 Read More
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 发行版养成的习惯。 Read More
我用 MyEclipse 建了一个 Web 项目,配置了能支持 Struts2。在验证标签应用时,把 《Struts2权威指南--基于WebWork核心的MVC开发》一书的例子 10.3 controlTag 中的 s-if.jsp 拷入当前应用。该 jsp 文件的内容是:想像一下我访问它时得到了什么样的结果?1<%@ page contentType="text/html; charset=GBK" language="java"%> 2<%@taglib prefix="s" uri="/struts-tags"%> 3<html> 4 <head> 5 <title>s:if标签测试</title> 6 </head> 7 <body> 8 <s:set name="age" value="29"/> 9 <s:if test="${age > 60}"> 10 老年人 11 </s:if> 12 <s:elseif test="${age > 35}"> 13 中年人 14 </s:elseif> 15 <s:elseif test="${age > 15}" id="wawa"> 16 青年人 17 </s:elseif> 18 <s:else> 19 少年 20 </s:else> 21 </body> 22</html>
然后把该应用 TestStruts2 部署到 Tomcat 5.0.28 下,启动 Tomcat,地址栏输入 http://localhost:8080/TestStruts2/s-if.jsp,确定,执行结果让我傻眼了,任凭我百般刷新,也都是赫然显示着:
Read More
吾同人数进寺庙,却从未点过一柱香。概因精神世界里终无所寄托。既不为生儿还是女而筹算,也无须因落下亏心事要请得神灵庇佑。想来,真要的东西,阿弥陀佛也给不了。在物价飞涨之际,谁能给你加薪,何来民主,看看这辈子能不能有机会参与选一回国家领导人,少说几句了,就这点言论自由了。
1. Struts 2 标签库以 OGNL 表达式为基础,对集合、对象的访问功能更强了。Struts 2 的标签用统一的前缀,一般为 "s",不再像 Struts1 那样分 <html:.../>、<bean:.../>、<logic:.../> 等多个命名空间的标签。如果在 JSP 2.0 之前用过 JSTL,也就知道什么是 OGNL 表达式的。
2. Struts2 提供了很多 Struts1 标签没有的东西,如日历、树型控件、Tab页等;同时可借助 DWR,有标签支持 Ajax,除此还提供了主题、模板,还允许在页面中使用自定义组件。Struts2 标签都定义在 URI 为 "/struts-tags" 的命名空间下,Struts2 的标签库功能很强大,使用起来却更简单。 Read More
真要看如何安装可直接跳到第三节,前两节权当胡诌。
此第一节与本篇旨意确有偏离,以免混淆视听,故此默认时隐去,有兴趣者可点击本行来展开阅读此节
一、
先前装过不少的 Linux 发行版,记得最早的还是 RedHat 5.1,那感觉真是非专业人员不可碰及,其实那时不过刚学步,当然要吃苦头的,一不小心便让硬盘数据倏忽全没了。
现在 Linux 慢慢也走向平民化了,尤其是 Ubuntu Linux。与 Ubuntu 的机缘还是前年大约八月份的时候,有个同事还是从美国带回来的一张 Ubuntu 6.06 LTS 的 Live CD。当晚在自己机器上一启动,发现那傻不拉叽又愣黄的界面,实在是无法与 RedHat 和 Suse 相媲美,便把它沉之箱底。 Read More