Tapestry中的组件及功能

10xGenomics官方可视化工具——Loupe Browser Loupe Browser是⼀款10xGenomics开发的交互式桌⾯应⽤程序,⽤于探索10x单细胞数据,可以用来找出感兴趣的细胞、找出显著差异表达的基因、鉴定细胞类型、探索细胞亚类和数据共享。 阅读详情

A)Foreach组件:
首先,我们接触到的第一Tapestry组件是Foreach组件。Foreach是一个循环组件,它遍历source参数,并在表现其内容前更新value参数。这是Tapestry组件参数的至关重要特性:将一个属性与一个组件参数绑定,组件不仅读取被绑定的属性,而且更新属性。
Foreach组件使用<span>标签,当其表现(render)时,并不直接生成任何HTML代码。它仅仅是将其包含的HTML标签和包含的组件重复表现。

B)Insert组件:
我们可以在HTML模板中看见大量的Insert组件。这个组件很简单,就是实现out.print()的功能。
<span jwcid="@Insert" value="ognl:item.username"/>
我们刚刚提到,在Foreach组件每次循环遍历list的时候,把对象赋予item,现在我们就是取出item对象(MagMessage)中的username字段的值。这里我们使用了OGNL表达式。等同于:item.getUsername()。
在组件规范中,我们可以看到Insert组件还有一个参数raw,该参数是boolean类型,其默认值为false。如果设为true,我们会看见,Insert组件会解析value参数的值中所包含的HTML标签。

C)Image组件:
<img jwcid="@Image" image="ognl:getAsset('image' + item.head)" alt="头像" src="images/messageBoard/1.gif" width="32" height="32" border="0"/>

Image组件是Tapestry标准组件,用于插入<img>标签,通过image参数生成标签src的属性。标签alt用来显示图片名称。src参数在这里存在的原因是为了方便美工,这样在美工就可以在“所见即所得”编辑器中(如Dreamware)对页面进行编辑。实际上该组件在运行时,会在page文件中寻找匹配image参数的图片路径动态替换src的路径。

详细请看Tapestry.pdf 书籍

D)Conditional组件
该组件只有一个参数condition,如果condition参数的值为true,就运行Conditional组件的<span>标签范围内的HTML模板,相反则不运行。
<span jwcid="@Conditional" condition='ognl:item.sex.equals("1")'>
先生
</span>
<span jwcid="@Conditional" condition='ognl:item.sex.equals("0")'>
女士
</span>
因为在数据库中,我们存储的性别类型为String类型的1和0,1代表“男”,0代表“女”,所以当我们取出item.sex字段的值后,需要把0和1转换为客户明白的词汇。

E)GenericLink组件
<a jwcid="@GenericLink" href="ognl:'http://' + item.homepage" disabled="ognl:item.homepage==null"><img src="images/messageBoard/home.gif" width="16" height="16" align="absmi0"/>主页</a>&nbsp;&nbsp;
ddle" border="<a jwcid="@GenericLink" href="ognl:'mailto:' + item.email " disabled="ognl:item.email==null"><img src="images/messageBoard/mail.gif" width="16" height="16" align="absmiddle" border="0"/>电子邮件</a>

这个组件有个href参数,其作用很明显,就是提供一个链接地址,从item.homepage和item.email中可以取出地址,只是我们需要在“主页”的链接地址前添加'http://',在“电子邮件”前添加'mailto:'。
Tapestry总共有6种标准的link组件:GenericLink, ActionLink, DirectLink,ServiceLink, ExternalLink和PageLink,在后续部分,我们会陆续介绍另外5种link组件。组件GenericLink通常用于跳转到应用程序范围以外的链接。
因为“主页”和“电子邮件”地址是用户在留言的时候自己填的,有可能有,也有可能没有。如果没有,就不应该“点击”,所以GenericLink有个参数disabled,该参数默认为false,当为true时,不能被“点击”。关于disabled参数,所有link足见都有,作用均相同。

F:Form组件基本用法:
对于Form组件,也许现在阐述的内容让你一头雾水,不过看后面几种组件的介绍,就会逐渐明白的。
<form jwcid="leaveWord@Form" delegate="ognl:beans.delegate">
表单提交必须使用DirectLink方式。在这里,监听(listener)方法可以有两种使用方式。第一种方式,将监听方法放在Form组件中声明,那么格式就是:
<form jwcid="leaveWord@Form" delegate="ognl:beans.delegate" listener="ognl:listeners.leaveWord">
这种方式的话,也就是说,凡是Form组件所包围的范围内,只要submitted,那么就会触发监听方法。
第二种方式,将监听方法放在Submit或者ImageSubmit组件中:
<span jwcid="@ImageSubmit" image="ognl:assets.submitImage" listener="ognl:listeners.leaveWord"><img src="images/button/tj.gif" width="50" height="18" border="0"/></span>
也就是我们现在使用的方式,这种方式的优点在于,如果Form中有多个submit按钮,我们希望不同的按钮实现不同的功能,那么这种方式就方便多了。
delegate="ognl:beans.delegate"这个参数用来连接Form和验证代理。在Form中的每一个FieldLabel和ValidField组件必须使用用一个验证代理。在MessageBoard.page文件中:
<bean name="delegate" class="com.cdmcs.tapestry.page.RegisterDelegate"/>
OGNL表达式beans.delegate解释一个验证代理。所有这个Form中的组件都将共享这个代理。

AUTOSAR CAN通信全过程 首先,从AUTOSAR架构上来说,一个完整的CAN通信的过程涉及到了包括硬件、AUTOSAR中间件和上层应用层软件;在硬件部分来说,涉及到的是CAN 总线和CAN的收发器;软件部分的话,涉及到的概念是MCAL(微控制器抽象层)、BSW(基础软件层)、RTE(实时运行环境)、APPL(应用层)等;其中MCAL部分用到了通信驱动模块,而BSW部分使用到了通信服务模块和通信硬件抽象模块;由于笔者是做MCAL和BSW的,至于应用层部分的知识就暂且不具体介绍了; 阅读详情

相关推荐

基于Tapestry4的水果店Web应用实战项目

Tapestry4作为Java Web开发中高度组件化的代表框架,采用事件驱动与面向对象的设计理念,将Web界面抽象为可复用的组件树结构。每个页面由多个嵌套组件构成,通过声明式模板与Java类绑定,实现表现层与逻辑层的无缝衔接。框架基于Servlet API构建,但屏蔽了底层细节,开发者无需直接处理HTTP请求,而是通过引擎(Engine)调度页面激活、事件分发与响应渲染流程。

weixin_31938351的博客 469

Tapestry组件功能

介绍Tapestry组件的使用和功能。内容还行,使用初学者入门。

tapestry页面编辑组件

tapestry页面编辑组件,可以实现文本框,单选框,多选框和下拉框等的自动生成,并返回改变后的数据。

tapestry组件

首先tapestry组件最基本的是由三个文件组成:Html,page,java文件 Html页面是前台,java就是后台逻辑,page文件就是将前台与后台联系起来的配置文件。这里的组件大部分只在html页面中直接写就可以用。部分需要在page文件中配置。(下面例子中的html页面,page页面,java代码就是指这以上三个文件)。   1) DirectLink 组件        超连

xiaogezhuifengren的专栏 6367

Tapestry的使用

"@Insert" value="ognl:t4start" /> 在上面的代码中,调用了Tapestry的官方组件Insert,value属性是Insert组件的参数之一。 "@"符号用于区分jwcid是一个组件类型还是一个组件ID,如果是一个组件ID,tapestry将在HTML模板对应的页面规范中寻找对应该组件ID的组件调用配置。 (亦可这样理解,"@"为官

憧憬美好生活的boy 2439

tapestry常用组件使用

[code="..."] 1、For source:是对应的java类里的List 对象或者是个数组 需要抽象 或者提供set get方法 value:是循环这个source对象代表当前的一个 ,需要在page文件中设置问一个属性,可以不在对应的java类里有这个属性 index:是循环的索引值 同value一样 在page文件中设置一个属性即可 在循环的时候 会自动为vlaue和in...

赵子龙||zbb 769

Tapestry组件运用总结(Link)

Tapestry总共有6种标准的link组件: GenericLink, ActionLink, DirectLink,ServiceLink, ExternalLink和PageLink *disabled参数 公有参数,disabled=true时,链接不可用 [b]A) GenericLink 组件[/b] e.g.     百度     用于跳转到应用程序范围以外的链接 ...

rabbiter_gtt的专栏 357

第四十二讲:tapestry组件详解之Autocomplete

第四十二讲:tapestry组件详解之Autocomplete网址http://www.uxdpen.com/newtechnologydetail/177

flywind520的专栏 174

Tapestry学习2

1、Foreach组件: Foreach是一个循环组件,它遍历source参数,并在表现其内容前更新value参数。这是Tapestry组件参数的至关重要特性:将一个属性与一个组件参数绑定,组件不仅读取被绑定的属性,而且更新属性。 Foreach组件使用标签,当其表现(render)时,并不直接生成任何HTML代码。它仅仅是将其包含的HTML标签和包含的组件重复表现。 这里source参

mianhuatangQi的专栏 781

第三十八讲:tapestry表单组件详解之Select

第三十八讲:tapestry表单组件详解之Select网址http://www.uxdpen.com/newtechnologydetail/173

flywind520的专栏 211

第二十七讲:tapestry表单组件详解之Checkbox

第二十七讲:tapestry表单组件详解之Checkbox网址http://www.uxdpen.com/newtechnologydetail/162

flywind520的专栏 204

Tapestry的service

Tapestry的service Tapestry的service 这是Tapestry框架的核心部分。Tapestry框架面向组件的开发方式,使得我们不再操心Servlet底层细节和URL中质询参数的结构。Tapestry用于Servlet的底层对象为了更好地理解Tapestry的service运作过程,我们首先需要熟悉一下Tapestry service中常用的核心对象。 1. I

xymyeah 1112

第四十一讲:tapestry组件详解之Grid与GridPager

第四十一讲:tapestry组件详解之Grid与GridPager网址http://www.uxdpen.com/newtechnologydetail/176

flywind520的专栏 184

tapestry 中使用枚举类型作为组件参数的方法

转自:http://tapestry.apache.org/enum-parameter-recipe.html It's not uncommon to create a component that has a bit of complex behavior that you want to be able to easily control, and an enumerated typ

銠槍--突廆孒 1007

T5 技巧 3:使用“t::body”进行布局。

[color=red]现在正在使用T5开发一个小项目。 因为现在T5还正处于发展中。 而且没有像T4一样有许多的文档。 和例子(Workbench, Vlib)。 所以我会把在这个开发中遇到的一些问题记录下来。[/color] 我们知道在tapestry4的自带的例子中会有个Border组件。这个自定义的组件其实是起到了一个布局的作用。对网站的统一风格有很大的好处。但是在tapestry5中...

邓胤的家当 277

Tapestry学习笔记(8)

Tapestry的service 这是Tapestry框架的核心部分。Tapestry框架面向组件的开发方式,使得我们不再操心Servlet底层细节和URL中质询参数的结构。 Tapestry用于Servlet的底层对象 为了更好地理解Tapestry的service运作过程,我们首先需要熟悉一下Tapestry service中常用的核心对象。 1. IRequestCycle对...

javabeyond的专栏 209

页面跳转类组件:ActionLink, DirectLink, ExternalLink, GenericLink, ServiceLink

1-ActionLink组件 暂时理解为,不转向下一页面,只是激活一个监听方法。页面响应时,创建了一个链接。如果触发了链接时,组件ActionLink得到一个监听器(通过调用方法actionTriggered())。2-DirectLink组件--------------------------------------------------------------------

deadswan000的专栏 2757

第二十八讲:tapestry表单组件详解之Checklist

第二十八讲:tapestry表单组件详解之Checklist网址http://www.uxdpen.com/newtechnologydetail/163

flywind520的专栏 166

页面跳转类组件

ActionLink组件 页面响应时,创建了一个链接。如果触发了链接时,组件ActionLink得到一个监听器(通过调用方法actionTriggered())。 DirectLink组件 DirectLink组件涉及到session,与ExternalLink组件的区别有两个: 第一: DirectLink涉及session,DirectLink拥有一个boolean类型...

zhangwenjun8045 799

6502编程大奥秘CHM版

自从金远见公司推出其具有战略意义的文曲星电子产品-CC800后,由于其内置了GVBASIC语言,开放的开发平台,促使在"文曲星世界"掀起了一股轰轰烈烈的编程热潮.我很幸运,也赶上了这股末潮.

上一篇: javascript 解决浏览器不支持的问题
下一篇: taglib definition not consistent with specification version
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值