你如何创建Tapestry 5中的组件?

我一直在使用Tapestry的内置组件,但现在我想试试使我自己。 假设这是可能的,它是如何完成的,并且它的普遍预期,开发商会除了要创造自己的成分会发生什么开箱?

--------------解决方案-------------

是的,它预计开发商将创建自己的组件,这是非常容易做到的。 有相当多的项目,在那里,人们正在创造自己的组件库。 如果你想看到一些例子来看看:

  • http://chenillekit.org/demo/
  • http://code.google.com/p/corner/
  • http://code.google.com/p/myt5lib/
  • http://tapestry.formos.com/nightly/tapx/tapx-datefield/
  • http://code.google.com/p/tapestry5-treegrid/

组件是很像的页面。 他们通常有一个.tml文件和一个.java文件。 在java文件变到src目录调用的组件中(src /主/ JAVA / COM /例子/应用/组件)和.tml文件云在同一个地方,但在资源(钢骨混凝土/主/资源/ COM /例子/应用/组件)

下面是呈现为一个链接到网页EventInfo并采取Event对象,以建立共享在Facebook上的URL Facebook分享链接组件的例子。

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

import javax.persistence.Transient;

import net.xeric.register.entities.Event;

import org.apache.tapestry5.Link;
import org.apache.tapestry5.annotations.Parameter;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.PageRenderLinkSource;

public class ShareEventOnFacebook {

@Inject
private PageRenderLinkSource linkSource;

@Parameter(required=true)
@Property
private Event event;

public String getFacebookShareURL() {
Link link = linkSource.createPageRenderLinkWithContext("EventInfo", event);
String linkURL = "";
try {
linkURL = URLEncoder.encode(link.toAbsoluteURI(),"UTF-8");
} catch (UnsupportedEncodingException e) {

e.printStackTrace();
}
return linkURL;
}

public String getFacebookShareTitle() {
String returnValue = "";
try {
returnValue = URLEncoder.encode(event.getDescription(), "UTF-8");
} catch (Exception e) {
e.printStackTrace();
}
return returnValue;
}

}

要特别注意的事件属性如何被注解将其标记为必需的参数。 这使得组件的参数,所以你可以在模板中调用它说<t:shareeventonfacebook event="myEvent"/>

而相应的模板文件:

<t:container
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd">

<a href="http://www.facebook.com/sharer.php?u=${facebookShareURL}">
Share on Facebook
</a><br/>

</t:container>

你想在你用你的页面模板使用的组件:

<t:shareeventonfacebook event="event"/>

它不仅是可能的,但简单和良好的记录。 看看Tapestry的文档中的相关位:组件类,组件模板,组件事件和组件参数。 实际上,页面仅顶层组件,所以你应该感到宾至如归。

您还可以看看的内置组件,看看它们是如何实现的。

如果你已经创建页面,并使用现有的组件,那么你已经创建组件(网页是专门的组件)。 主要的区别是:

  • 组件走在不同的包
  • 组件通常不具有模板(它们在代码呈现)
  • 组件可以有参数

请检查Tapestry网站上,为所有剩余的细节。

分类:挂毯 时间:2013-04-20 人气:0
本文关键词: 挂毯
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.364 (s). 10 q(s)