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

tapestry5.0之Grid

阅读更多
1.tml文件
<t:layout  xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">   
    <t:beaneditform t:id="user" submitlabel="Create User" object="user"/>
    
    <h1>List Users</h1>
        <t:grid source="users" row="user" rowsPerPage="5" pagerPosition="bottom" empty="nodata"
         t:rowClass="literal:evenodd" add="operation">
            <t:parameter name="userNameCell">
                <t:pagelink page="user/edit" context="user.id">${user.userName}</t:pagelink>
            </t:parameter>
			<t:parameter name="operationCell">
                <t:actionlink t:id="delete" context="user.id">Delete</t:actionlink>
            </t:parameter>
        </t:grid>
</t:layout>   

2.java文件
package com.logcd.tapestry5.myapp.pages.user;

import java.util.List;

import org.apache.tapestry5.annotations.IncludeStylesheet;
import org.apache.tapestry5.ioc.annotations.Inject;

import com.logcd.myapp.dao.UserDao;
import com.logcd.myapp.models.User;

@SuppressWarnings("unchecked")
@IncludeStylesheet("classpath:com/logcd/tapestry5/myapp/pages/user/CreateUser.css")
public class CreateUser {

    private User user;
	
	@Inject
    private UserDao userDao;

	public CreateUser(){}
	
	public void setUser(User user) {
		this.user = user;
	}

	public User getUser() {
		return user;
	}

	Object onSuccess() {
		user.setPhones(null);
		userDao.save(user);
        return CreateUser.class;
    }
	
    void onActionFromDelete(long userId){
    	userDao.delete(userDao.findById(userId));
	}  
   
	public List<User> getUsers() { return userDao.findAll(); }
}

3.properties文件
#定义表头文本
operation-label=操作
userName-label=用户名称
emailAddress-label=电子邮箱
birthday-label=出生日期
role-label=角色

也可以在java文件中定义表头
	@Inject  
	private BeanModelSource beanModelSource;   
	
	@Inject  
	private ComponentResources componentSources; 
	 
	@Inject   
	private Messages _messages; 

	private BeanModel userBeanModel;
	public BeanModel getUserBeanModel(){
		return buildUserBeanModel(beanModelSource,componentSources);
	}

	public BeanModel buildUserBeanModel(BeanModelSource beanModelSource, ComponentResources componentSources){
		if(userBeanModel == null){
			userBeanModel = beanModelSource.createEditModel(User.class,_messages); 
			userBeanModel.get("userName").label("用户名");
			userBeanModel.get("emailAddress").label("电子邮箱");
			userBeanModel.get("birthday").label("出生日期");
			userBeanModel.get("role").label("角色");
			userBeanModel.add("operation",new LogcdPropertyConduit()).label("操作");
		}
		return userBeanModel;
	}
同时给grid标签加上model="userBeanModel"就可以了。
public class LogcdPropertyConduit implements PropertyConduit{

	public Object get(Object arg0) {
		return "";
	}

	@SuppressWarnings("unchecked")
	public Class getPropertyType() {
		return String.class;
	}

	public void set(Object arg0, Object arg1) {
		
	}

	public <T extends Annotation> T getAnnotation(Class<T> arg0) {
		return null;
	}

}

4.css文件
table.t-data-grid {
	border-collapse: collapse;
	border-left: 1px solid silver;
	width: 100%;
}

table.t-data-grid thead tr th{
	background: #990000
	color: white;
	text-align: center;
	vertical-align: middle;
	font-size:10px;
}

div.t-data-grid-pager span.current {
	background: #FFFFFF none repeat scroll 0%;
	border: 1px solid #CCCCCC;
	color: #CCCCCC;
	padding: 2px 5px;
	text-decoration: none;
}

div.t-data-grid-pager a:hover {
	background: #CC0000 none repeat scroll 0%;
	color: #FFFFFF;
}

div.t-data-grid-pager a {
	border: 1px solid silver;
	color: #CC0000;
	font-size: medium;
	margin-right: 5px;
	padding: 2px 5px;
	text-decoration: none;
}

div.t-data-grid-pager span.current {
	border: 1px solid silver;
	color: black;
	font-size: medium;
	margin-right: 5px;
	padding: 2px 5px;
	text-decoration: none;
}

.evenodd {
	line-height: 23px;
	background-color: expression(( this.sectionRowIndex % 2 == 0) ?
		"#E6EFF7" : "#F4F8FF" );
}

.userName,.operation,.birthday,.role{
	text-align: center;
	vertical-align: middle;
}
分享到:
评论
1 楼 valentina 2010-11-25  
很棒,问题解决了~

相关推荐

    tapestry5.0

    **Tapestry 5.0 开发指南** Tapestry 5.0 是一个开源的Java Web应用程序框架,由Apache软件基金会维护。它提供了一种高效、声明式的方式来构建动态、交互式的Web应用,强调了组件化和模块化的开发模式。Tapestry ...

    Tapestry.5.Building.Web.Applications.pdf

    《Tapestry 5.0:构建Web应用程序》是一份专为深入了解Tapestry 5.0框架而准备的详细指南。Tapestry是Apache软件基金会的一个开源项目,它提供了一种基于Java的声明式MVC(Model-View-Controller)框架,用于构建...

    tapestry-bin-5.0.14.zip

    《Tapestry 5.0.14 开发库详解》 Tapestry是一个功能强大的Java Web应用程序框架,由Apache软件基金会维护。标题中的“tapestry-bin-5.0.14.zip”指的是Tapestry的最新版本5.0.14的二进制发行包,它包含了开发人员...

    tapestry文件下载实例

    基于tapestry5.0的文件下载实例,已经完美实现,请参考。

    tapestry4.02中封装ext的GridPanel组件

    在IT行业中,Web开发是一个重要的领域,而Tapestry和ExtJS是两个广泛使用的框架,它们各自在构建动态和交互式的Web应用上有着独特的优点。本文将深入探讨Tapestry 4.02版本中对ExtJS的GridPanel组件进行封装的相关...

    Tapestry4开发指南

    要开始Tapestry4的开发,首先需要搭建合适的开发环境,这包括Eclipse 3.1或更高版本、MyEclipse 4.0或更高版本,以及Java SE 5.0或更高版本。一旦安装好这些工具,你可以按照以下步骤进行: 1) **项目配置**:创建...

    tapestry官方中文文档

    Tapestry是一款强大的Java Web应用程序框架,由Apache软件基金会维护,它强调了组件化、模块化和可重用性,使得开发复杂的Web应用变得更加简单。本文将深入介绍Tapestry 4的相关知识点。 1. **组件化编程**: ...

    tapestry5中文文档

    在开始使用Tapestry 5 开发之前,确保安装了Java SE Development Kit 5.0或更高版本,以及Servlet容器,如Apache Tomcat 5.5或更新版本。如果选择使用Maven 2.0.8,那么可以避免单独安装Servlet容器,Maven可以直接...

    Tapestry简单入门.rar_java Tapestry_tapestry

    Tapestry是一款强大的Java Web应用程序框架,由Apache软件基金会维护,它提供了一种基于组件的模型来构建动态、数据驱动的Web应用。本教程将帮助初学者了解Tapestry的基本概念,带你逐步入门并掌握其核心组件的使用...

    tapestry教程资料文档合集

    Tapestry5最新中文教程.doc 作者 Renat Zubairov & Igor Drobiazko译者 沙晓兰 发布于 2008年7月2日 下午9时30分 社区 Java 主题 Web框架 ----------------------------------------- Tapestry5.1实例教程.pdf ...

    tapestry学习入门资料

    "tapestry学习入门资料" Tapestry 是一个开源的基于 servlet 的应用程序框架,它使用组件对象模型来创建动态的、交互的 web 应用。 Tapestry 使得 Java 代码与 HTML 完全分离,利用这个框架开发大型应用变得...

    tapestry3开发指南,带tapestry3所有jar包

    **Tapestry 3 开发指南** Tapestry 3 是一个开源的Java Web应用程序框架,它在20世纪90年代末至21世纪初非常流行,由Apache软件基金会维护。这个框架提供了组件化、事件驱动和声明式编程模型,帮助开发者构建动态、...

    tapestry源码 api等

    Tapestry是一个强大的Java Web应用程序框架,由Apache软件基金会维护。它强调组件化、模块化和松耦合的开发方式,使得开发人员可以构建出高效、可维护的Web应用。以下是对Tapestry源码、API及相关库的详细解读: 1....

    Tapestry5开发文档手册.doc

    - JDK 5.0 或更高版本 - Servlet容器,如Apache Tomcat 5.5 或更新版本 - Maven 2.0.8(可选,用于构建和运行Tapestry应用) - 集成开发环境(IDE),如Eclipse或NetBeans,便于编辑Java和HTML文件 在Eclipse中导入...

    tapestry5以上的帮助事例,帮助文档与spring衔接文档

    Tapestry是一个基于控件的框架以致于用它开发Web应用类似开发传统的GUI应用。你用Tapestry开发Web应用时你无需关注以操作为中心的(Operation-centric) Servlet API.引用Tapestry网站上的一句话:"Tapestry用对象...

    Tapestry5最新中文入门实例教程

    ### Tapestry5最新中文入门实例教程 #### 一、引言 Tapestry是一个使用Java语言创建Web应用程序的面向组件的开发框架。...希望本教程能够为你开启Tapestry 5的世界之门,激发你在Java Web开发领域的探索之旅。

    Tapestry教程

    在MyEclipse中,你可以新建一个Web Project,命名为LoginDemo,并选择Java EE 5.0或更高版本作为开发环境。接着,你需要为项目添加Tapestry支持,这可以通过右击工程,选择相应的选项来完成。在配置完成后,你将能够...

    tapestry5.2.6 jar包

    Tapestry 5.2.6 是一个成熟的Java Web开发框架,它提供了一种高效、模块化和可扩展的方式来构建动态、数据驱动的Web应用程序。这个框架的核心理念是将用户界面与业务逻辑分离,通过组件化的思想实现页面的构建,从而...

Global site tag (gtag.js) - Google Analytics