本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7583130
建立时间:2006年5月29日




[Tapestry]Tapestry中配置文件page的简化处理
软件技术

lhwork 发表于 2006/7/11 17:54:20

Tapestry每个页面基本上都需要一个.page的配置文件,因为需要对模板HTML的动态内容部分进行配置,这是为静态页面和动态内容更好的分工,确实需要这么做。
但是,每个page文件的典型配置如下:
<page-specification class="...">
  <property...>
  <bean name="delegate" ...>
  <component ...>
  <asset ...>
</page-specification>

其中<component...>部分我觉得是必须的,HTML上输入域只需要增加一个jwcid=...即可,其它配置写入page文件中较好。 <property...>部分作者文档推荐这么做,这一部分也可以写入page中;


阅读全文(4594) | 回复(0) | 编辑 | 精华 | 删除
 


[Tapestry]Tapestry的数据校验功能-修改框架初试
软件技术

lhwork 发表于 2006/7/11 17:53:34

上篇文章的做法,不需要修改tapestry框架,但是前端javascript的校验功能丢失了。可以满足只需要后端校验的需要。
本文对“配置一次,前后都用”的理想模式进行实现,经测试表明成功了!

1,需要修改以下几个类和文件:
Body.java
Form.java
AbstractSubmit.java
Submit.java
ImageSubmit.java
Submit.jwc
ImageSubmit.jwc

BaseValidator.java
MinLength.java
......

2,增加BasePage的子类:
SubBasePage.java,其中增加一属性submitName,保存提交组件的名字,用以各validator根据提交组件的名字决定是否需要进行校验。

3,page中对各个输入组件配置validators时也发生了变化:
如,minLe


阅读全文(2963) | 回复(0) | 编辑 | 精华 | 删除
 


[Tapestry]Tapestry数据校验-修改各Validator
软件技术

lhwork 发表于 2006/7/11 17:52:58

1,BaseValidator的修改非常简单,增加了一个submitName属性及其getter和setter。用于保存校验器适用的提交按钮的ID。
// whether skip this validator
    public boolean isSkipValid(IFormComponent field) {
        IPage page = field.getPage();
        return (page instanceof XtradeBasePage && this.getSubmit

阅读全文(3038) | 回复(0) | 编辑 | 精华 | 删除
 


[Tapestry]Tapestry数据校验-修改Required Validator
软件技术

lhwork 发表于 2006/7/11 17:52:30

Required的修改遇到麻烦事,因为BaseValidator有一个方法isRequired,这样增加一个属性required的getter和 setter,page文件中设置required=searchId时,总是去匹配isRequired方法,这样出现字符串转换为布尔型错误。
为了对其它校验器不产生影响,我增加了一个校验器Required2,配置时required2=searchId。
同时,required类型的校验器本来不需要参数,所以现在参数值就是提交按钮的ID,因而可以使用BaseValidator的submitName属性。代码如下:
public class Required2 extend

阅读全文(3664) | 回复(0) | 编辑 | 精华 | 删除
 


[Tapestry]Tapestry存在多个提交按钮时设定按回车键动作的方法
软件技术

lhwork 发表于 2006/7/11 17:51:56

浏览器的两个默认处理:
1,当表单存在多个提交按钮,用户按下回车键,浏览器默认是提交左上角那个按钮;
2,如果在javascript中document.forms[0].submit()则同样提交表单,但不传递任何提交按钮的信息。

用户可能会要求设置一个默认提交按钮,而不是浏览器默认的动作。如果用户在页面上按回车键,则相当于点击其中一个提交按钮。

本文提供了解决回车键提交问题(兼容Firefox和IE)的办法。

1,首先提供了javascript代码,Script类;

阅读全文(5079) | 回复(1) | 编辑 | 精华 | 删除
 


[Tapestry]Tapestry数据校验-修改Body.java和Body.js
软件技术

lhwork 发表于 2006/7/11 17:51:06

1,Body.java:
protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle) {
        TapestryUtils.storePageRenderSupport(cycle, this);

        this.addExternalScript(TapestryUtil.getResource(

阅读全文(3723) | 回复(0) | 编辑 | 精华 | 删除
 


[Tapestry]Tapestry对图片,CSS和本地化字符串等资源的统一控制研究
软件技术

lhwork 发表于 2006/7/11 17:50:35

Tapestry的每个page需要将引用的图片或CSS写入配置中,比较麻烦,本文提供了一种统一管理各种资源的做法。

一、图片和CSS资源
1,在自定义的ApplicationServlet的init方法中初始化各图片资源: String path = config.getServletContext().getResource("/").getPath();    

阅读全文(2329) | 回复(-2) | 编辑 | 精华 | 删除
 


[Tapestry]Tapestry数据显示与存储之间格式转换的研究
软件技术

lhwork 发表于 2006/7/11 17:48:53

应用的数据一方面显示给用户看,另一方面需要保存到数据库中。而这两个用途数据的表现形式可能不同。
举例来说:
1,用户看到的性别是“男”,而数据库中存储的是“0”--这种类型的数据属于代码数据;
2,用户看到的数量是“1,214,235.30”,而数据库中存储的是“1214235.3”--这种类型的数据属于格式上的控制,可能与本地化有关。

对于以上关于数据显示和存储的差异Tapestry是如何设计与解决的呢?请接着往下看...

一、数据显示的格式化
1,输入域
用户可以输入数据的组件,如:TextField。
需要设置translator属性,如果是代码数据的转换则继承于AbstractTranslator,如果是数据格式的转换则继承于FormatTranslator。

如果是继承于AbstractTranslator,则需要实现formatObject方法和parseText方

阅读全文(1916) | 回复(0) | 编辑 | 精华 | 删除
 


[Tapestry]修改Tapestry异常处理页面
软件技术

lhwork 发表于 2006/7/11 17:48:07

Tapestry的异常处理页面显示的信息比较全,在开发阶段对于调试修改错误是非常有好处的。但是在运行期用户看到这样的信息时会不知所措的。

所以,我将异常画面设计为两套,一套服务于开发阶段,称之为设计期异常画面;另一套是专供最终用户看的,称之为运行期异常画面;设计期异常画面可以完全采用tapestry默认的异常画面,而运行期异常处理中把设计期异常信息写入日志文件中,而把定制的异常信息显示给用户,这样的页面可能非常简单,就是显示一行信息。

为此,需要修改Tapestry的默认配置,修改默认的异常处理页面。

1.将org\apache\tapes

阅读全文(2662) | 回复(1) | 编辑 | 精华 | 删除
 


[Tapestry]Tapestry框架的扩展的研究
软件技术

lhwork 发表于 2006/7/11 17:46:24

介绍:Tapestry框架底层使用了Hivemind这个小巧的IOC容器,很多功能都有相应的配置文件。
这些配置文件主要包括:service-point(服务点), implementation(服务实现),configuration-point(配置点)和contribution(配置实现)三个关键概念。
其中,服务点定义了服务的接口与默认实现,implementation可以覆盖服务点的默认实现,服务点ID和配置点ID在一个模块中必须唯一。


阅读全文(1669) | 回复(0) | 编辑 | 精华 | 删除
 


« 101 102 103 104 105 106 107 108 109 110 »



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.094 second(s), page refreshed 144757439 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号