简介:为了方便配置,增强配置,tapestry提供了许多绑定
(binding),如:asset,bean,component,hivemind,listener,literal,message,ognl,
state,translator,validator,validators...
其中最常用的ognl,它表示后面的是ognl表达式。
利用绑定,开发人员可以增强页面/组件规范文件或模板文件中可配置的功能。
问题:现在有一个问题是,ImageSubmit组件需要设置一个属性image,其值必须是IAsset,tapestry本身提供的做法是,在规范文件中设置一个asset,如:
|
[Tapestry]Tapestry的模板技术探究 软件技术
lhwork 发表于 2006/7/11 17:45:20 |
Tapestry提供的模板技术非常好,对于模板的侵入性特别的低。 可以让美工人员和开发人员尽可能的协同工作。这个优点恰恰是许多其它web框架的弱点。
请看下面的分析:
一、美工人员的工作 首先,利用可供利用的方便工具如DreamWeaver创建设计HTML页面,包括CSS,图片等。 然后,在已经增加了动态内容的页面上修改,修改,再修改......直到客户满意为止。 请注意,此时的动态内容基本上只是增加了SPAN标签,修改了标签(仅仅增加了一个属性JWCID) 美工人员使用设计工具基本上感觉不到有任何变化。也许大家还不是十分清楚,请继续往下看...
二、开发人员的工作
1,简单动态内容 如果纯粹是显示的内容,需要把静态内容使用
阅读全文(2164) | 回复(0) | 编辑 | 精华 | 删除 |
| | |
[Tapestry]拒绝Tapestry4的注入(Inject)功能 软件技术
lhwork 发表于 2006/7/11 17:44:28 |
Tapestry4.0中引人注目的一个功能是注入功能,实现了配置和代码双重注入各种对象的功能。
1.配置文件中使用inject,值得注意的是即使没有使用JDK1.5,inject也同样能够工作;
2.代码中要使用JDK1.5支持的元数据标注(annotation)。
个人不太喜欢注入功能。并不是因为本人因循守旧,拒绝革新,而是感觉确实没有太多必要使用它们。
首先,page文件中使用它,增加配置上的复杂度,有点配置过度之嫌。page文件应当只包括与模板有关的动态内容的定义,其它像注入等内容放到类里面去做更好。
尤其是对spring支持的注入,最后使用inject在page文件中进行配置,没有找到在代码中直接得到Bean的方法。
我实现了一个Initializer,其中提供公开WebApp |
|
[Apache(jakarta)]Derby快速上手 软件技术
lhwork 发表于 2006/7/11 10:20:33 |
Derby是IBM送给开源社区的又一个礼物,是一个pure java的数据库,现在已经被列入到java1.6中。 不知道对于大数据量的性能如何,但传说中启动derby只会给JVM添加2M的内存,对那些小数据库应用,比如像用access那种应该是挺有诱惑力的。 另外,麻雀虽小,五脏俱全,功能要比access多得多咯,包括事务处理,并发,触发器都有,管理又简单,因此自己用来做点工具正好合适。 废话少说,介绍一下我折腾了半天的经验吧。 我的Derby配置过程: 1,下载db-derby-10.1.3.1-bin.tar.gz,derby_core_plugin_10.1.3.zip和derby_ui_plugin_1.1.0.zip,把两个插件安装到eclipse上 2,打开ecllipse,新建一个project 3,
右键这个project,选择Apache Derby,再选择add apache derby
native,发现只是给我的project添加了几个derby的jar,还不是在我看着顺眼的lib目录里,索性干掉,换上db-d |
|
[软件设计]使用代理模式让应用程序使用动态java代码 软件技术
lhwork 发表于 2006/7/11 10:18:42 |
如果我们把一个JSP文件发布到Tomcat里边,JSP是可以动态改变得,也就是说随着这个JSP文件的改变,通过浏览器访问,可以获得不同的结果。然而有没有想过能够让java代码像jsp那样动态的改变? 实际上通过java的反射机制和内建的代理模式,完全可以做到这一点。下面就一步一步的说一下这是如何实现的。
1,准备知识 代理模式代理模式是一种对象的结构模式,简单的说就是给某个对象提供一个代理对象,并通过代理对象来访问真正的对象。 按照《java与模式》里边说说的,proxy其实有很多种用法:Remote
proxy,Vitual Proxy,Copy-on-Write Proxy,Cache Proxy,Firewall
proxy,Synchronization |
|
[Apache(jakarta)]httpclient 3.0初步研究 软件技术
lhwork 发表于 2006/7/11 10:18:02 |
最近一直试图用httpClient做点自动化的工作,不过现在看来并没有想象中的那么轻松。 实际上登录一个网站,访问某个特点的页面,发表一篇文章,上传一些文件,并不是一个简单的事情。 HttpClient的基本使用因为发布的代码中带有几个例子,应该算是不难掌握的事情。下面我说下我遇到的几个问题。
1,登陆验证图片问题 首先登录的时候网站如果不想你对它编程的化通常都会设计一个验证图片,这个技术现在已经如此的易于使用,以至于随便到哪里都能找到代码来直接使用。对于验证图片的,现在还苦于无计可施状态。
2,笨蛋Cookie问题: 如果你要发送多个cookie,其实可以这样发的:
| |
[MySQL]关于MySQL嵌套查询的问题 软件技术
lhwork 发表于 2006/7/11 10:07:50 |
最近在MySQL上做了点工作,发现很多人都在询问MySQL嵌套查询的问题,许多人都觉得MySQL不支持嵌套查询,其实MySQl从4.11版后已经完全支持嵌套查询了,那么下面我举些简单的嵌套查询的例子吧(源程序来自MySQL User Manual):
1. SELECT语句的子查询: 语法: SELECT ... FROM (subquery) AS name ...
先创建一个表: CREATE TABLE t1 (s1 INT, s2 CHAR(5), s3 FLOAT); INSERT INTO t1 VALUES (1,'1',1.0); INSERT INTO t1 VALUES (2,'2',2.0);
我们就可以进行以下的嵌套查询了: SELECT sb1,sb2,sb3 FROM (S |
|
[MySQL]SQL 精妙语句  软件技术, 电脑与网络
lhwork 发表于 2006/7/11 10:06:20 |
如何从一位菜鸟蜕变成为高手,灵活使用的SQL语句是必不可少的。本文收集了部分比较经典,常用的SQL语句供大家参考,希望对大家有所帮助。
说明:复制表(只复制结构,源表名:a 新表名:b)
SQL: select * into b from a where 1<>1
说明:拷贝表(拷贝数据,源表名:a 目标表名:b)
SQL: insert into b(a, b, c) select d,e,f from b;
说明:显示文章、提交人和最后回复时间
SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
说明:外连接查询(表名1:a 表名2:b)
|
|
[MySQL]MySQL 5.1 提供XML内置支持(XPath) 软件技术, 电脑与网络
lhwork 发表于 2006/7/11 9:59:17 |
前些天说到了MySQL5提供了内置的XML文件解析和修改函数,今天找了点MySQL网站上的资料和例子,翻译了一下,希望能给使用数据库存储XML和XSLT的同志一些帮助。 MySQL 5.1.5版本中添加了对XML文档进行查询和修改的函数,分别是ExtractValue()和UpdateXML(),下面是这两个函数的使用示例: 还是一样我们首先建立一个示例数据库,然后将范例中使用的XML文档输入到数据库中: CREATE TABLE x (doc VARCHAR(150)); INSERT INTO x VALUES (' <book> <title>A guide to the SQL standard</title> <author> <initial>CJ</initial> <surname>Date</surname> </author> </book> |
|
|