为什么你应该考虑使用Tapestry 5?
程序员文章站
2022-04-23 17:50:12
...
Tapestry 5.0.14近期已经发布,Tapestry社区非常兴奋,因为Tapestry离成为GA只有一步之遥了。如果你没有听说过Tapestry 5,介绍一下Tapestry 5是一个开源基于组件的web框架,对于原先的版本进行了完全的修改。一些开发者不喜欢先前的版本因为困难的学习曲线,一些开发者甚至写文章抱怨,但是T5是一个全新的架构,虽然思路和先前的版本一样。那么T5的好处是什么?为什么你应该考虑在你的项目中使用Tapestry?
1。创建定制的组件非常简单和快捷
考虑一下通过Taglib来创建定制组件?或者更糟糕的用JSF来创建定制组件?通过T5来创建组件简捷而充满乐趣,因为它基于最普通基本的POJO,这意味这你能够单元测试你的定制组件。下面是一个T5组件的一个例子:
然后能够在页面模板中调用:
或者如果你希望将它嵌入你的HTML tag,你的web设计者能够在他熟悉的HTML设计中预览它,你能这样使用:
是不是非常简单?
2。容易创建模板
如何在T5中创建模板templates?(tapestry社区也称之为布局layout或者边框border,从T4中继承而来)
使用下面的代码创建,非常简洁:
先创建:
然后创建template使用和组件类同一名称Layout.tml:
<t:body>元素告诉你插入你的页面片断主体,下面是你的页面片断代码:
下面是page class,你能写入你的逻辑代码:
这是被成为Controller中写下你的前台逻辑。所有的内容都很简单,提升你的开发效率。忘记其他第三方开发工具比如Sitemesh吧。
3。更少的需要维护和配置的XML代码
很多配置都在web.xml文件中,但是在T5中,配置写入了java classes文件。下面是例子:
在T5中web.xml是你唯一需要管理的文件。其他配置都放在java class中。用于配置的java class文件名称为:AppModule.java,在web.xml中配置,类似这样:
这种方式让配置简单,也让发现问题更加简单。
T5其他特点还包括:
4。约定大于配置(这种思想现在很流行,T5也使用了)
5。和Groovy无缝集成
6。提供非常友好的URL
7。支持AJAX
8。和Hibernate无缝集成
9。和Spring框架无缝集成
推荐阅读整篇文章:http://joshuajava.wordpress.com/2008/08/21/why-you-should-consider-tapestry-5/
1。创建定制的组件非常简单和快捷
考虑一下通过Taglib来创建定制组件?或者更糟糕的用JSF来创建定制组件?通过T5来创建组件简捷而充满乐趣,因为它基于最普通基本的POJO,这意味这你能够单元测试你的定制组件。下面是一个T5组件的一个例子:
public class AddChar { @Parameter(required=true) private String value; @Parameter(required=true) private int position; @Parameter(required=true) private String character; void beginRender(MarkupWriter writer){ StringBuffer sb = new StringBuffer(value); sb.insert(position, character); writer.write(sb.toString()); } }
然后能够在页面模板中调用:
<t:addChar value="literal:HelloWorld" position="5" character="literal:-"/>
或者如果你希望将它嵌入你的HTML tag,你的web设计者能够在他熟悉的HTML设计中预览它,你能这样使用:
<span t:type='addChar' t:value="literal:HelloWorld" position="5" character="literal:-"/>
是不是非常简单?
2。容易创建模板
如何在T5中创建模板templates?(tapestry社区也称之为布局layout或者边框border,从T4中继承而来)
使用下面的代码创建,非常简洁:
先创建:
@IncludeStylesheet( "context:css/myapp.css" ) public class Layout { }
然后创建template使用和组件类同一名称Layout.tml:
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> <head> <title>Tapestry5 Experiments</title> </head> <body> <div id="wrap"> <t:body/></div> </body> </html>
<t:body>元素告诉你插入你的页面片断主体,下面是你的页面片断代码:
<t:layout xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> <div id="right"> Hello</div> </t:layout>
下面是page class,你能写入你的逻辑代码:
public class Search { }
这是被成为Controller中写下你的前台逻辑。所有的内容都很简单,提升你的开发效率。忘记其他第三方开发工具比如Sitemesh吧。
3。更少的需要维护和配置的XML代码
很多配置都在web.xml文件中,但是在T5中,配置写入了java classes文件。下面是例子:
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <display-name>Tapestry5 Experiments</display-name> <context-param> <param-name>tapestry.app-package</param-name> <param-value>yourpackage</param-value> </context-param> <context-param> <param-name>tapestry.production-mode</param-name> <param-value>false</param-value> </context-param> <filter> <filter-name>app</filter-name> <filter-class>org.apache.tapestry5.TapestryFilter</filter-class> </filter> <filter-mapping> <filter-name>app</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
在T5中web.xml是你唯一需要管理的文件。其他配置都放在java class中。用于配置的java class文件名称为:AppModule.java,在web.xml中配置,类似这样:
public class AppModule { public static void bind(ServiceBinder binder) { // binder.bind(MyServiceInterface.class, MyServiceImpl.class); // Make bind() calls on the binder object to define most IoC services. // Use service builder methods (example below) when the implementation // is provided inline, or requires more initialization than simply // invoking the constructor. } public static void contributeApplicationDefaults( MappedConfiguration<String, String> configuration) { configuration.add(SymbolConstants.SUPPORTED_LOCALES, "en"); configuration.add(SymbolConstants.PRODUCTION_MODE, "false"); } }
这种方式让配置简单,也让发现问题更加简单。
T5其他特点还包括:
4。约定大于配置(这种思想现在很流行,T5也使用了)
5。和Groovy无缝集成
6。提供非常友好的URL
7。支持AJAX
8。和Hibernate无缝集成
9。和Spring框架无缝集成
推荐阅读整篇文章:http://joshuajava.wordpress.com/2008/08/21/why-you-should-consider-tapestry-5/