一、 contrib:PopupLink 组件:
Html 模板代码:
<h1> PopopLink组件: </h1><p>
作用:弹出一个自定义的窗口,相当于一个 Script语名:
<br> window.open(URL, windowName, windowFeatures) <br>
1.必须在Body组件内使用。 <br>
2.注意href参数它会产生一个地址“/context/href参数值”
<p> <span jwcid = "@contrib:PopupLink" href = "/WEB-INF/Home.html" features = 'ognl:"resizable,scrollbars,top=100,left=100,height=400,width=300"' > PopupLink到主页 </span>
二、 GenericLinkLink 组件
Html 模板代码:
1.GenericLink:一般作用是用来链接跳转到应用程序范围以外的链接。注意OGNL用法: <br>
<a jwcid = "@GenericLink" href = "ognl:'http://'+url" >
<span jwcid = "@Image" image = "ognl:assets.ms" /> 163主页 </a><p>
url参数:
private String url="http://www.blogjava.net/happydavy/";
ms参数:
<context-asset name="ms" path="//MS.JPG"/>
作用:点击后就会到 163页面。
三、 .ExternalLink 组件
Html 模板代码:
<span jwcid = "@ExternalLink" page = "LinkResult" parameters = 'ognl:new java.lang.Object[]{new java.lang.Integer("5"),new java.lang.String("rjzjh")}' >
ExternalLink使用 </span><p>
ExternalLink :这组件比 GenericLink 组件复杂,使用 Tapestry 的 9 种 Service 的 “external service” ,它的用法关注 LinkResult 页。
链接传递参数 parameters ,多个参数用逗号隔开。链接的页面 “LinkResult” 必须实现 IExternalPage 接口,必须重写 activateExternalPage 方法
在这个方法中我们可以把传递过来的参数取出来实现我们的逻辑。参数因为单引号内有双引号,所以不能用双引号,也可以调回来用了,链接页的地址为: http://localhost:8080/context/app?service=external/LinkResult&sp=5&sp=Srjzjh
接收参数的页面要:
? 实现 IexternalPage 接口。
? 覆盖 public void activateExternalPage(Object[] parameters, IRequestCycle cycle) 方法。
如下 Java 文件为:
public void activateExternalPage(Object[] parameters, IRequestCycle cycle) {
this.setPar1((Integer)parameters[0]);
if(parameters.length==2){
this.setPar2((String)parameters[1]);
}
}
三、 DirectLink 组件
Html 模板为:
<p><span jwcid = "@DirectLink" listener = "ognl:listeners.directlistener" parameters = 'ognl:new java.lang.Object[]{new java.lang.Integer("8"),new java.lang.String("zjh")}' >
这是一个DirectLink链接
</span><br>
<span jwcid = "@DirectLink" listener = "ognl:listeners.DirectResult" parameters = 'ognl:new java.lang.Object[]{new java.lang.Integer("8"),new java.lang.String("zjh")}' >
第二个DirectLink,跳转到LinkResult页面
</span>
<br> DirectLink要传的参数是:
<span jwcid = "@Insert" value = "ognl:Directpar1" /> 和 <span jwcid = "@Insert" value = "ognl:Directpar2" /><p>
第一个组件接收参数方法(监听事件):
public void directlistener(IRequestCycle cycle){
Object[] par=cycle.getServiceParameters();
this.setDirectpar1((Integer)par[0]);
this.setDirectpar2((String)par[1]);
}
第二个组件接收参数方法(在跳转的页面中写监听事件):
1 .先跳转到另一个页面:
public void DirectResult(IRequestCycle cycle){
IPage result=cycle.getPage("LinkResult");
cycle.activate(result);
}
2 .这时参数也会随 Session 传到 LinkResult 页面,在 LinkResult 页面中写监听事件。
public void getpar(IRequestCycle cycle) {
Object[] par=cycle.getServiceParameters();
this.setDirectpar2((String)par[1]);
this.setDirectpar1((Integer)par[0]);
}
posted on 2005-12-27 17:51
我的java天地 阅读(870)
评论(0) 编辑 收藏