`
log_cd
  • 浏览: 1090400 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Tapestry5自定义组件

阅读更多
一、普通组件
1.java文件
package com.logcd.tapestry5.myapp.components;

import java.util.ArrayList;
import java.util.List;

import org.apache.tapestry5.ComponentResources;
import org.apache.tapestry5.annotations.Parameter;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.ioc.annotations.Inject;

public class NavBar {
	@Parameter(defaultPrefix = "literal", required = true)
	private String pages;

	@Inject
	private ComponentResources resources;

	@Property
	private Page _pageAttr;

	public List<Page> getPageNames() {
		List<Page> pageList = new ArrayList<Page>();
		String[] pageArr = pages.split(",");
		for(int i=0;i<pageArr.length;i++){
			Page page=new Page();
			page.setName(pageArr[i].split("=")[0]);
			page.setUrl(pageArr[i].split("=")[1]);
			pageList.add(page);
			page=null;
		}
		return pageList;
	}

	public String getTabClass() {
		if (_pageAttr.name.equalsIgnoreCase(resources.getPageName()))
			return "current";

		return null;
	}
	
	public class Page{
		private String name;
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public String getUrl() {
			return url;
		}
		public void setUrl(String url) {
			this.url = url;
		}
		private String url;
	}
}

2.NavBar.tml
<table class="navigation" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">

   <tr>
        <t:loop source="pageNames" value="pageAttr">
            <td class="${tabClass}">
                [<t:pagelink page="${pageAttr.url}">${pageAttr.name}</t:pagelink>]
            </td>
        </t:loop>
    </tr>

</table>

3.页面使用
<span t:type='NavBar' pages="首页=Index,用户管理=user/CreateUser"/>

二、布局模板组件
1.java文件
package com.logcd.tapestry5.myapp.components;

import org.apache.tapestry5.annotations.IncludeStylesheet;
//用 "context:"前缀,如果存储在应用程序(webapp)的目录
//用"classpath:"前缀,如果存储在应用程序的classpath路径下
@IncludeStylesheet("context:styles/layout.css")
public class Layout {

}

2.tml文件
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
     <head>
          <title>Tapestry 5 Demo Application</title>
		  <style type="text/css">
		  	@import url(${asset:context:styles/myapp.css});
		  </style>
     </head>
     <body>
          <div id="header">
               <h1>Tapestry 5 Demo</h1>
               <div id="navigator" style="float:right;margin-right:10px;">[<t:pagelink t:page="Index">首页</t:pagelink>]</div>
          </div>
          <div id="container">
          	<t:body/>
          </div>
          <div id="footer">
               Design by <a href="#">XXX Design</a>
          </div>
     </body>
</html>

3.layout.css
div{
	text-align:left;
}
#header{
	width : 100%;   
	margin: 2px auto;
	text-align:center;
	background-color: #FFFFEC;
	border:1px solid #f60; 
	height:10%;
}
#container{
	 margin:0 auto;
	 overflow:hidden;
	 background:#eee;
	 border:1px solid #f60; 
	 width: 100%;
	 height:85%;
} 
#footer{
	clear:both;
	width:100%;
	margin:2px auto;
	text-align:center;
	background-color: buttonface;
	border:1px solid #f60; 
	height:5%;
}

4.使用模板
<t:layout xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
        <p> 现在是: ${currentTime}. </p>
            [<t:pagelink t:page="Index">refresh</t:pagelink>]
        </p>
</t:layout>
分享到:
评论

相关推荐

    tapestry5 自定义组件

    自定义的邮件组件!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    tapestry table

    一个关于table在tapestry里应用的例子

    Maven + Tapestry5.3.8 + Spring4.0.5 + Oracle10g

    2)Tapestry 各种核心组件的使用 3)自带验证,自定义验证,验证码的生成 4)Tree组件的使用,Grid的各种使用(修改样式,排序,隔行换色等等),Loop组件的使用 5)集合Spring4.0.5实现的增删改查 等等 如果你是新...

    apache-tapestry-5.8.3稳定版 包含二进制,源码和java的api文档

    Apache Tapestry是一个开源且基于组件的Web应用框架,主要用于创建高度可扩展的Java...此外,Tapestry也提供了许多自定义注释以简化Web应用开发,如类、方法和成员字段的注释等,这些注释可以覆盖功能的默认约定。

    Spring中文帮助文档

    15.5. Tapestry 15.5.1. 注入 Spring 托管的 beans 15.6. WebWork 15.7. 更多资源 16. Portlet MVC框架 16.1. 介绍 16.1.1. 控制器 - MVC中的C 16.1.2. 视图 - MVC中的V 16.1.3. Web作用范围的Bean 16.2. ...

    Spring API

    15.5. Tapestry 15.5.1. 注入 Spring 托管的 beans 15.6. WebWork 15.7. 更多资源 16. Portlet MVC框架 16.1. 介绍 16.1.1. 控制器 - MVC中的C 16.1.2. 视图 - MVC中的V 16.1.3. Web作用范围的Bean 16.2. ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    12.6.5. 事务管理 12.6.6. JpaDialect III. Web 13. Web框架 13.1. 介绍 13.1.1. 与其他web框架的集成 13.1.2. Spring Web MVC框架的特点 13.2. DispatcherServlet 13.3. 控制器 13.3.1. AbstractController 和 ...

    spring chm文档

    Spring Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop ...18.3. 使用Spring提供的辅助类实现EJB组件 19. JMS 19.1. 简介 19.2. 使用Spring JMS ...

    Spring 2.0 开发参考手册

    18.3. 使用Spring提供的辅助类实现EJB组件 19. JMS 19.1. 简介 19.2. 使用Spring JMS 19.2.1. JmsTemplate 19.2.2. 连接工厂 19.2.3. (消息)目的地管理 19.2.4. 消息侦听容器 19.2.5. 事务管理 19.3. 发送...

    webx3框架指南PDF教程附学习Demo

    • Tapestry • Spring MVC 以上框架都是非常优秀的。说实话,如果阿里巴巴网站在2001年开始,就有这么多可选择的话,无论选择哪一个都不会有问题。因为这些年来,所有的开源Web框架都在互相学习、并趋于相似。...

Global site tag (gtag.js) - Google Analytics