- 浏览: 1224708 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (353)
- java基础 (40)
- tapestry (16)
- gwt (14)
- ajax (7)
- linux (8)
- ubuntu (18)
- eclipse (6)
- dojo (2)
- javascript (7)
- maven (4)
- 日常生活 (29)
- web2.0 (2)
- jsonrpc (1)
- compass (1)
- lucene (0)
- spring (10)
- cluster (3)
- 数据结构 (2)
- sqlserver (1)
- tomcat (2)
- swing (1)
- servlet (1)
- hibernate (1)
- firefox (1)
- Java-Puzzlers (1)
- Wicket (2)
- mysql (10)
- windows (5)
- Webwork (1)
- struts2 (1)
- Seam (2)
- jboss (1)
- idea (6)
- 分布计算 (3)
- Python-Django (7)
- Hadoop (1)
- 工具 (3)
- Tokyo Tyrant (2)
- Comet (1)
- android (115)
- 音乐 (6)
- cxf (1)
- mqtt (1)
最新评论
-
hesai_vip:
学习了,感谢
gradlew wrapper使用下载到本地的gradle.zip文件安装。 -
imknown:
姚瑶大坏蛋 写道我也遇到了这个,用你这个方法,导致下拉刷新不起 ...
解决android-Ultra-Pull-To-Refresh下拉刷新组件中嵌套ViewPager的一个bug -
姚瑶大坏蛋:
我也遇到了这个,用你这个方法,导致下拉刷新不起作用了,你遇到过 ...
解决android-Ultra-Pull-To-Refresh下拉刷新组件中嵌套ViewPager的一个bug -
寐语者:
LeaderElection(String zookeeper ...
使用Zookeeper来为你的程序加上Leader Election的功能。 -
fyc0109:
博主, 安装了一部分还是报这个错误!FAILURE: Buil ...
gradlew wrapper使用下载到本地的gradle.zip文件安装。
现在正在使用T5开发一个小项目。 因为现在T5还正处于发展中。 而且没有像T4一样有许多的文档。 和例子(Workbench, Vlib)。 所以我会把在这个开发中遇到的一些问题记录下来。
记得在T4中是使用一组字符串来作为table columns。 为了加上删除/修改按钮的话,我们就只要加上"!operation" 这样的字符串, 然后用block render td就行了。但是到了T5中。 并没有提供这样的属性。
在看了Grid组件的参数后。 我们发现model 这个参数。 毫无疑问这个参数是用来定义Bean中要显示的列, 是否排序, 显示的顺序 等等。 具体可以看org.apache.tapestry.beaneditor.BeanModel。org.apache.tapestry.services.BeanModelSource. org.apache.tapestry.beaneditor.PropertyModel. 这些接口和他们的实现类。
那我们要怎样增加这样的“删除/修改”列呢? 因为column必须是要在Bean中的一个property。 所以最直接的方法是在Bean中增加这样的一个假的属性。 比如。
ok. 这样我们就实现了这个“删除/修改”列。
但是大家可能都会觉得这样不爽。因为operationColumn污染了我们的User类。
下面介绍种不污染的方法。
我们还是要从model这个参数下手。。
我们需要build一个beanModel
在 page 类。
html template:
ok。
参考:http://www.nabble.com/T5---Adding-modify-delete-actions-to-a-Grid-t3370935.html#a9379935
在你的页面中覆盖掉tapestry定义的css。 比如:
效果如下: (上面的示例代码就是来自这个页面。)
我确实是因为不想使用NonVisual annoation。 因为如果我有两个table。 一个需要这个属性, 另外一个不需要这个属性的话, 用NonVisual是不行的。。
你的意思是这样??
我觉得这个应该放到一个static field里面, 以便重用。。
这句是什么意思? 我哪里没有正确使用接口了?? 你在解释下tapestry5的简单性。
什么意思? 直接点。。
你看看T4的 checkboxGroup。 基本上都是一样的吧。
在你的bean中加一个boolean selected 然后用checkbox binding到这个属性。。
记得在T4中是使用一组字符串来作为table columns。 为了加上删除/修改按钮的话,我们就只要加上"!operation" 这样的字符串, 然后用block render td就行了。但是到了T5中。 并没有提供这样的属性。
在看了Grid组件的参数后。 我们发现model 这个参数。 毫无疑问这个参数是用来定义Bean中要显示的列, 是否排序, 显示的顺序 等等。 具体可以看org.apache.tapestry.beaneditor.BeanModel。org.apache.tapestry.services.BeanModelSource. org.apache.tapestry.beaneditor.PropertyModel. 这些接口和他们的实现类。
那我们要怎样增加这样的“删除/修改”列呢? 因为column必须是要在Bean中的一个property。 所以最直接的方法是在Bean中增加这样的一个假的属性。 比如。
class User { private int id; private String name; // add a fake property. However this property shouldn't use except in grid render. private String operationColumn; //...............other properties........... // .................getter/setter methods }
<t:parameter t:name="operationColumnCell"> <a t:type="ActionLink" t:id="deleteLink" context="currentRow.id">删除</a> </t:parameter>
ok. 这样我们就实现了这个“删除/修改”列。
但是大家可能都会觉得这样不爽。因为operationColumn污染了我们的User类。
下面介绍种不污染的方法。
我们还是要从model这个参数下手。。
我们需要build一个beanModel
package com.javaeye.dengyin2000.gtts.tapestry; import java.lang.annotation.Annotation; import org.apache.tapestry.PropertyConduit; public class OperationPC implements PropertyConduit { public Object get(Object arg0) { return ""; } public Class getPropertyType() { return String.class; } public void set(Object arg0, Object arg1) { } public <T extends Annotation> T getAnnotation(Class<T> arg0) { return null; } }
public static BeanModel buildDriverBeanModel(BeanModelSource beanModelSource, ComponentResources componentSources){ if (driverBeanModel == null){ PropertyConduit operationPC = new OperationPC(); driverBeanModel = beanModelSource.create(Driver.class, false, componentSources); driverBeanModel.remove("id", "sex", "photo", "address", "sexType", "national"); driverBeanModel.get("name").label("姓名").order(0); driverBeanModel.get("idCard").label("身份证").order(1); driverBeanModel.get("telNo").label("电话号码").order(2); driverBeanModel.get("carNo").label("车牌号码").order(3); driverBeanModel.get("carLong").label("车长(米)").order(4); driverBeanModel.get("carWidth").label("车宽(米)").order(5); driverBeanModel.get("carHeight").label("车高(米)").order(6); [color=red][b]driverBeanModel.add("operation", operationPC).label("操作").order(7).sortable(false);[/b][/color] } return driverBeanModel; }
在 page 类。
@Inject private BeanModelSource beanModelSource; @Inject private ComponentResources componentSources; .......................................... public BeanModel getDriverBeanModel(){ return MiscUtils.buildDriverBeanModel(beanModelSource, getComponentSources()); }
html template:
<table t:id="driverGrid" t:type="Grid" model="driverBeanModel" source="driverSource" row="currentRow" empty="nodata" pagerPosition="bottom" rowsPerPage="12" class="xx"> [color=red][b] <t:parameter t:name="operationCell"> <a t:type="ActionLink" t:id="deleteLink" context="currentRow.id">删除</a> </t:parameter>[/b][/color] </table>
ok。
参考:http://www.nabble.com/T5---Adding-modify-delete-actions-to-a-Grid-t3370935.html#a9379935
评论
12 楼
koda
2007-08-22
是啊,应该是这样哦:)
那么title文字的定制呢?
那么title文字的定制呢?
11 楼
dengyin2000
2007-08-22
koda 写道
接下来的定制是:
1). 如何更改默认Title显示
2). 如何定制CSS
1). 如何更改默认Title显示
2). 如何定制CSS
在你的页面中覆盖掉tapestry定义的css。 比如:
引用
table.t-data-grid {
border-collapse:collapse;
border-left:1px solid silver;
width:100%;
}
table.t-data-grid thead tr {
background:#990000 url(../images/sprites.gif) repeat-x scroll 0pt -1300px;
color:white;
}
div.t-data-grid-pager span.current {
background:#FFFFFF none repeat scroll 0%;
border:1px solid #CCCCCC;
color:#CCCCCC;
padding:2px 5px;
text-decoration:none;
}
div.t-data-grid-pager a:hover {
background:#CC0000 none repeat scroll 0%;
color:#FFFFFF;
}
div.t-data-grid-pager a {
border:1px solid silver;
color:#CC0000;
font-size:medium;
margin-right:5px;
padding:2px 5px;
text-decoration:none;
}
div.t-data-grid-pager span.current {
border:1px solid silver;
color:black;
font-size:medium;
margin-right:5px;
padding:2px 5px;
text-decoration:none;
}
border-collapse:collapse;
border-left:1px solid silver;
width:100%;
}
table.t-data-grid thead tr {
background:#990000 url(../images/sprites.gif) repeat-x scroll 0pt -1300px;
color:white;
}
div.t-data-grid-pager span.current {
background:#FFFFFF none repeat scroll 0%;
border:1px solid #CCCCCC;
color:#CCCCCC;
padding:2px 5px;
text-decoration:none;
}
div.t-data-grid-pager a:hover {
background:#CC0000 none repeat scroll 0%;
color:#FFFFFF;
}
div.t-data-grid-pager a {
border:1px solid silver;
color:#CC0000;
font-size:medium;
margin-right:5px;
padding:2px 5px;
text-decoration:none;
}
div.t-data-grid-pager span.current {
border:1px solid silver;
color:black;
font-size:medium;
margin-right:5px;
padding:2px 5px;
text-decoration:none;
}
效果如下: (上面的示例代码就是来自这个页面。)
10 楼
koda
2007-08-22
接下来的定制是:
1). 如何更改默认Title显示
2). 如何定制CSS
1). 如何更改默认Title显示
2). 如何定制CSS
9 楼
dengyin2000
2007-08-22
koda 写道
我又去Tapestry5里求证了一下,楼主使用的方式是对的。另外有时我们可能只想显示bean类的某些属性,怎么做?
楼主的做法像这样:
driverBeanModel.remove("id", "sex", "photo", "address", "sexType", "national");
还有一种做法是在bean的getter方法前说明annoation.
@NonVisual
public String getPhoto(.....
相比之下,我觉得楼主的做法更好(集中设定),而且如果bean是hiernate实体类,如果用@NonVisual,必然污染了bean,不好维护。
楼主的做法像这样:
driverBeanModel.remove("id", "sex", "photo", "address", "sexType", "national");
还有一种做法是在bean的getter方法前说明annoation.
@NonVisual
public String getPhoto(.....
相比之下,我觉得楼主的做法更好(集中设定),而且如果bean是hiernate实体类,如果用@NonVisual,必然污染了bean,不好维护。
我确实是因为不想使用NonVisual annoation。 因为如果我有两个table。 一个需要这个属性, 另外一个不需要这个属性的话, 用NonVisual是不行的。。
8 楼
koda
2007-08-22
我又去Tapestry5里求证了一下,楼主使用的方式是对的。另外有时我们可能只想显示bean类的某些属性,怎么做?
楼主的做法像这样:
driverBeanModel.remove("id", "sex", "photo", "address", "sexType", "national");
还有一种做法是在bean的getter方法前说明annoation.
@NonVisual
public String getPhoto(.....
相比之下,我觉得楼主的做法更好(集中设定),而且如果bean是hiernate实体类,如果用@NonVisual,必然污染了bean,不好维护。
楼主的做法像这样:
driverBeanModel.remove("id", "sex", "photo", "address", "sexType", "national");
还有一种做法是在bean的getter方法前说明annoation.
@NonVisual
public String getPhoto(.....
相比之下,我觉得楼主的做法更好(集中设定),而且如果bean是hiernate实体类,如果用@NonVisual,必然污染了bean,不好维护。
7 楼
dengyin2000
2007-08-22
koda 写道
我的意思是楼主使用
PropertyConduit接口,他是不是一个内部类阿(tapestry内部的类)
如果是的话,应该有更更好的方法来实现这个功能
PropertyConduit接口,他是不是一个内部类阿(tapestry内部的类)
如果是的话,应该有更更好的方法来实现这个功能
driverBeanModel.add("operation", new PropertyConduit() { public Object get(Object arg0) { return ""; } public Class getPropertyType() { return String.class; } public void set(Object arg0, Object arg1) { } public <T extends Annotation> T getAnnotation(Class<T> arg0) { return null; } }).label("操作").order(7).sortable(false);
你的意思是这样??
我觉得这个应该放到一个static field里面, 以便重用。。
引用
如果你用的正确的接口类,我就越发怀疑起Tapestry5是否违背了其简单性的承诺。
这句是什么意思? 我哪里没有正确使用接口了?? 你在解释下tapestry5的简单性。
6 楼
koda
2007-08-22
我的意思是楼主使用
PropertyConduit接口,他是不是一个内部类阿(tapestry内部的类)
如果是的话,应该有更更好的方法来实现这个功能
PropertyConduit接口,他是不是一个内部类阿(tapestry内部的类)
如果是的话,应该有更更好的方法来实现这个功能
5 楼
hitalang
2007-08-22
谢谢,期待好文ing
4 楼
dengyin2000
2007-08-21
koda 写道
我不确信你是否调用了Tapestry的内部类。如果你用的正确的接口类,我就越发怀疑起Tapestry5是否违背了其简单性的承诺。
什么意思? 直接点。。
3 楼
koda
2007-08-21
我不确信你是否调用了Tapestry的内部类。如果你用的正确的接口类,我就越发怀疑起Tapestry5是否违背了其简单性的承诺。
2 楼
dengyin2000
2007-08-21
biaoming 写道
我也在T5的分页列表,这个方法对我非常有用,但是能不能实现通过一个复选框组,如标个全选的呢?
你看看T4的 checkboxGroup。 基本上都是一样的吧。
在你的bean中加一个boolean selected 然后用checkbox binding到这个属性。。
1 楼
biaoming
2007-08-21
我也在T5的分页列表,这个方法对我非常有用,但是能不能实现通过一个复选框组,如标个全选的呢?
发表评论
-
解决用run-jetty-run锁住css,js文件的问题。
2008-09-25 17:46 6645开发中用run-jetty-run插件启动jetty调式tap ... -
打造Tapestry5中的智能的错误页面。
2008-09-18 15:59 1810我们一般需要为生产和开发环境准备两套error page。 t ... -
T5这么多的Page Lifecycle method, 应该怎样使用?
2008-09-04 18:18 2395Tapestry5种大概有以下Page ... -
扔掉T5复杂的Grid组件,打造自己灵活的支持分页排序组件。
2008-01-03 13:12 2875Grid算是比较T5中较复杂的一个组件,我也有篇介绍Grid怎 ... -
对Tapestry的一点思考。
2007-12-27 23:33 4097Tapestry5已经开发了蛮久了。 听说最近要发布T5.0. ... -
Tapestry 5.0.5 bug, TAPESTRY-1648
2007-08-26 12:20 2633有一个domian object, 其中有个property的 ... -
T5 技巧 3:使用“t::body”进行布局。
2007-08-25 00:08 2939现在正在使用T5开发一个小项目。 因为现在T5还正处于发展中。 ... -
T5 技巧 1:解决Form的提交乱码问题。
2007-08-21 10:58 8378现在正在使用T5开发一个小项目。 因为现在T5还正处于发展中。 ... -
T5 developing with WTP and TOMCAT
2007-08-16 09:50 2743以下是我发给tapestry右键列表的问题。 现在还没有人回复 ... -
Wicket Vs Tapestry
2007-05-11 14:41 7485我是一个tapestry的老用户。从学校毕业就开始使用tape ... -
Tapestry5中 page template不能reload。
2007-05-09 13:50 5888上午看了下tapestry5的文档,然后自己写了个简单的页面。 ... -
Tapestry Table 组件的强大(分页查询时只fetch当前页的数据)。
2006-03-01 16:00 4366导入的blog格式乱了,大 ... -
Tapestry 显示图片
2006-03-06 16:00 2778导入的blog格式乱了,请看我的msn spaces blog ... -
@Persist 解释
2006-03-08 16:00 3154a) @Persist("client") ... -
原创 Tapestry的Cache组件
2006-12-22 11:24 5091有许多页面的一部分或者这个页面是很少更新的,他们通常是由外部文 ...
相关推荐
最新带个人免签约支付接口友价T5商城源码,支持app上传功能,源码交易网源码,站长交易网 独家修复后台设置虚拟数据后首页不生效,新加个人免签约支付接口---码支付接口! 码支付接口是个人支付宝 微信 QQ 收款,全自动...
自1961年NCERT成立以来,就启动了一个名为“国家科学天才搜索计划”(NSTSS)的项目,旨在识别和培养优秀学生,并为他们提供奖学金。该计划最初仅限于当时的德里联邦直辖区,第一年仅向11年级的学生颁发了10个奖学金...
T5UIC2软件平台以其精简的指令集和灵活的配置选项,为开发者提供了一个高效的人机界面解决方案。 首先,T5UIC2支持多种尺寸的串口屏硬件型号,从2.8寸到12.1寸不等,提供了丰富的分辨率选项,满足不同应用场景下的...
Sparc T5-2 是一款由Sun Microsystems(后被Oracle公司收购)设计的高性能服务器平台,专为关键业务和数据中心应用而构建。该服务器基于SPARC架构,提供卓越的计算能力、内存容量和I/O性能。Sparc T5-2 的核心亮点...
项目录屏:https://www.bilibili.com/video/BV1xx4y187t5 启动教程:https://www.bilibili.com/video/BV1pW4y1P7GR 项目讲解视频:https://space.bilibili.com/417412814/channel/collectiondetail?sid=2242844
Cisco IOS(Internetwork Operating System)是思科系统为大部分路由器及部分交换机等网络设备所开发的一种专有操作系统。它负责控制并管理设备的各项功能,如数据包转发、路由选择等。Cisco IOS采用模块化设计,...
T5飞马 中文生成式预训练模型,以mT5为基础架构和初始权重,通过类似PEGASUS的方式进行预训练。 详情可见: ://kexue.fm/archives/8209 分词器 我们将T5 PEGASUS的令牌...目前开源的T5 PEGASUS是基本版,总参数量为2
T5-2文本安装旨在为用户提供一个简洁、高效且易于自动化管理的安装方法。 ### 安装语言的选择 在开始安装之前,首先需要选择安装语言。这一步非常重要,因为它会影响到后续安装过程中显示的所有文本内容的语言版本...
Bart_T5-摘要使用来自Bart和T5模型的汇总任务可以直接比较文本摘要Bart和T5的最佳模型。安装需求pip install -U transformerspip install -U torchpip install flask跑步python app.py巴特总结T5总结
2. **编码**:将预处理后的输入馈送给T5-Small模型,模型将其转换为内部表示。 3. **解码**:模型根据编码的输入生成答案序列。 4. **后处理**:将模型生成的文本序列转化为实际答案,并进行必要的清理或修剪。 **...
专为小学生设计的数学学习辅助材料,通过简单的图形和文字解释了除法的基本概念及其应用场景,有助于孩子快速掌握除法运算技巧。 **链接**: [http://app.siweidaotu.com/#R0d217b86d4f982a63be8f34ba6e06313]...
【GNUVario-TTGO-T5-website:GNUVario-TTGO-T5-网站】是一个专注于GNUVario-E项目的在线资源平台,该平台致力于提供基于ESP32芯片的开源硬件设计和变量计的详细信息。这个项目的核心是将开源精神应用于电子工程领域...
【标题】"T5 + Hibernate 用户登陆2"指的是在使用T5框架的基础上,结合Hibernate ORM技术实现用户登录功能的一个教程或案例。T5通常是指一个Web开发框架,而Hibernate则是一个流行的Java对象关系映射(ORM)工具,...
迪文T5L是一款基于8051内核的微控制器,由迪文科技公司设计生产,常用于工业控制、智能家居、消费电子等领域。Keil C51是针对8051系列微控制器的集成开发环境,它集成了编译器、调试器和IDE,使得C语言编程变得简单...
知识点2:Prompting方法可以预示着针对大模型的下游微调,将成为研究领域关注的重点。 知识点3:Chain of Thought(CoT)是一种最新的Prompting机制,可以让语言模型有了自我改进的能力。 知识点4:谷歌研究者们...
Microsoft Teams 是微软推出的一款团队协作平台,它集成了聊天、会议、电话、文件共享和应用集成等多种功能,旨在提升企业内部沟通与协作效率。本文将详细介绍Microsoft Teams的开发入门、实践资源以及技术社区,...
网上比较多的ippicv是ippicv_2017u3_lnx_intel64_general_...其实更万能的方式参考该链接:https://www.wandouip.com/t5i170326/ 特别注意file://这个是cmake读取文件的方式,所以 "file:///home/lc/下载/"是没错的
"terraform-provider-alicloud"正是Terraform用来与阿里云API接口进行通信的插件,版本号为1.95.0,适用于Linux操作系统且基于AMD64架构。这个zip文件包含了该插件的二进制可执行文件,用于在本地系统上运行...