`
tapestry
  • 浏览: 187030 次
社区版块
存档分类
最新评论
文章列表
Tapestry中表单的提交有很多问题,刷新导致表单的重复提交、臭名昭著的dirty form warning、显示不友好的URL等,这些都可以使用redirect-after-post模式来避免,也就是post表单之后将页面redirect一下,这样地址栏显示的就是redirect之后的页面,刷新的也将是这个页面,而且redirect之后的页面一般为Page页面,可以使用friendlyUrl来显示友好的url。<o:p></o:p> 要使用这个模式,不得不提到一个ILink接口,T4中可接受的listener方法中一个方法签名是这样的:<o:p></ ...
Tapestry4.0.x版本的PagePool实现很简单,只是使用一个map容器作为缓存,高并发的情况下容易导致OutOfMemoryException,下面是邮件列表中的相关内容,里边也提到了相关建议,估计会作为一个bug修改,在未修改之前,我会给出一个简单实现。 PagePool doesnt remove idle pages, heap memory doens't get reallocated > ---------------------------------------------------------------------- > > Key: T ...
Tapestry4中上传文件的组件对文件的处理做了很好的封装,用户界面最常用的还是普通Form中的<input type="file">,最近看了SWFUpload(http://labb.dev.mammon.se/swfupload/)组件,感觉不错,界面可以设计的很友好,定制性很强,而且提供了javascript回调接口,可以很好的跟踪文件上传的各种事件。SWFUpload给出的例子中,只是给出php的后台实现,下面给出在Tapestry4中的实现。 第一步:下载并修改SWFUpload         从http://labb.dev.mammon ...
1、Content Assist for variables with unresolved type   当写没导入的类时,不需要停下来导入了,可以直接写完所有代码后再导入,没导入的类一样有代码提示。 2、Organize imports on Clean Up和Code clean up on save   我现在用的小插件中,有个Format on save,就是保存文件时,自动import、format、fixed代码,省了很多事,现在官方提供支持了,虽然还只是自动导入。
官话版: 一、组件类不再需要继承基类; 二、组件类不再是抽象类,而是纯粹的简单的POJO(plain old Java objects) 三、不再使用XML配置文件和组件定义文件(.page,.jwc),所有的配置信息使用注释(annotations)实现。 四、组件类和模版的任何 ...
一、@OneToOne @Entity public class User{ private Address address; @OneToOne public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } } @Entity public class Address{ private User user; @OneToOne(mappedBy = &quo ...
You let HiveMind inject stuff into your service that runs at startup: public class MyStartupClass implements Runnable { private MyService myService; public void setMyService( MyService myService ) { this.myService = myService; } public void run() { myService.doSomethingThatM ...
1、依赖上的改变去掉了对commons-io,commons-logging的依赖,增加了commons-lang包.(commons-logging的类加载存在内存泄漏http://wiki.apache.org/jakarta-commons/Logging/UndeployMemoryLeak)2、api上的改变所有标记deprecated的api在4.1中已经被去除(是不是所有还不确定),这也意味着没有page.visit和page.global了,没有了ActionService/ActionLink,RequestCycle对象的创建中去除了IMonitor和RequestCont ...
    一开始使用tacos在ie和firefox下测试都没问题,今天在ie下测试,动态更新的页面部分竟然没反应,回忆了一下改过的东西,试着一个一个的恢复来测试问题所在,最后竟然发现是output编码的问题,在applicatin配置文件中加入<meta key="org.apache.tapestry.output-encoding" value="gbk"/>后,ie下不刷新,去掉后ie里功能正常,问题是解决了,可以不知道为什么这个都能让tacos出错。两者的区别在于生成的代码中 <meta name="generator& ...
be sure wait_timeout in your my.cnf file is set to a value greater than the idle_timeout set in your connection pool. (they both are seconds in units)otherwise the server will kill the connection from behind, with the pool thinking it should still be alive, you'll get one of these here SocketExceptio ...
     映射使用hibernate-annotations-3.1beta8,其本身对boolean的映射在mysql5中映射为 Bit(1),但在Mysql4中的映射为TINYINT, 而且在使用中 发现boolean值根本没法update,生成的语句为set isadmin='true',boolean值的true映射成了字符'true',解决方法如下: @Column(columnDefinition="BOOLEAN")     public java.lang.Boolean getDisabled() {         retu ...
DescriptorParse类分析通过DescriptorParse.properties文件定义xml文件的中需要的元素和元素是否必须required.module.id=true说明module有个属性id,而且是必须输入的,在创建DescriptorParse类时,调用流程构造函数调用initializeFromPropertiesFile(),加载properties文件,继续调用iinitializeFromProperties(Properties p)读出key和value传入initializeFromProperty(key, value),判断是否以"requir ...
IdAllocator类类中保存了一个Map类,用来保存已经分配Id的name,并且保存生成后的Id,这样请求"name",返回“name_1”,如果请求"name_1"的话就不是返回"name_1_1",而是返回"name_2",或者是"name_i"(i>1).Token一、TokenType定义了四种Token:1、TEXT,原始的html文本。2、OPEN,<span jwcid="@Type">此为OPEN TOKEN。3、CLOSE,跟在OPEN ...
(From http://kano.net/javabench/#servervm)Every form of Sun's Java runtime comes with both the "client VM" and the"server VM." Unfortunately, Java applications and applets run by defaultin the client VM. The Server VM is much faster than the Client VM, butit has the downside of ta ...
1.如果在属性的getter和setter方法中,只定义了其中的一个,而且是抽象的,那T4会自动不全对应的getter或者setter,例如:public abstract String getName(),T4在增强类中将生成public voidsetName(String name)方法,反之亦然。这样如果你在这时定义了个非抽象的对应的方法,将被T4生成的方法覆盖。类中定义如下两种方法:public abstract void setName(String name);public String getName(){return "myname";}getName方法将 ...
Global site tag (gtag.js) - Google Analytics