`
log_cd
  • 浏览: 1090458 次
  • 性别: 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

    tapestry5.0开发指南自己下来看吧

    tapestry-bin-5.0.14.zip

    tapestry最新版本的开发库5.0.14版

    Tapestry.5.Building.Web.Applications.pdf

    这是关于Tapestry 5.0的英文资料,看了会对你有帮助。

    tapestry文件下载实例

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

    tapestry4.02中封装ext的GridPanel组件

    tapestry4.02中封装ext的GridPanel组件

    tapestry教程资料文档合集

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

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

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

    深入浅出Tapestry

    资源名称:深入浅出Tapestry内容简介:本书以循序渐进的方式,从Tapestry框架技术的基本概念入手,讲解Tapestry框架在J2EE Web应用程序中的整体架构实现。使读者在学习如何使用Tapestry框架技术的同时,还能够获得在...

    tapestry官方中文文档

    Tapestry 4 官方文档中文版本,现在中文资料比较少,和大家共享一下

    Maven + Tapestry5.3.8 + Spring4.0.5 + Oracle10g

    之所以说是个大Demo,是因为这项目中包含的内容并不少,包含: 1)解决了Tapestry5.3.8中文Bug问题 2)Tapestry 各种核心组件的使用 3)自带验证,自定义验证,验证码的生成 4)Tree组件的使用,Grid的各种使用...

    Tapestry5.0.16_API文档

    Tapestry5.0.16文档和大家一起学习

    深入浅出tapestry

    本书以循序渐进的方式,从Tapestry框架技术的基本概念入手,讲解Tapestry框架在J2EE Web应用程序中的整体架构实现。使读者在学习如何使用Tapestry框架技术的同时,还能够获得在J2EE Web应用程序中应用Tapestry框架的...

    tapestry 实例

    tapestry 实例tapestry 实例tapestry 实例tapestry 实例

    Tapestry4开发指南

    Tapestry4的雏形是Tapestry3.1,Tapestry的作者Howard,...所以Tapestry3.1的开发一开始就处于Hivemind框架之下。后来由于种种原因,Howard没有将Tapestry3.1从Hivemind中剥离出来,于是就成为了今天的Tapestry4.0。

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

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

    Tapestry5最新中文入门实例教程

    本文介绍Tapestry框架版本5。本文利用Tapestry 5开发一个简单的具有创建/读/更新/删除功能的应用,在创建这个应用的过程中,本文体会到Tapestry带来的开发效率的提升。从多方面来讲解 Tapestry应用,比如应用的...

    tapestry5.2.6 jar包

    tapestry5.2.6 最新jar包,Tapestry框架是一个位于java servlet容器和Tapestry应用程序之间的层

    tapestry技术

    tapestry技术 Tapestry是一个开源的基于servlet的应用程序框架,它使用组件对象模型来创建动态的,交互的web应用。一个组件就是任意一个带有jwcid属性的html标记。其中jwc的意思是Java Web Component。Tapestry使得...

    Tapestry开发指南

    Tapestry是一个开源的基于servlet的应用程序框架,它使用组件对象模型来创建动态的,交互的web应用。一个组件就是任意一个带有jwcid属性的html标记。其中jwc的意思是Java Web Component。Tapestry使得java代码与html...

Global site tag (gtag.js) - Google Analytics