Tapestry5 grid

1.tml文件

Html 代码
  1. < t:layout    xmlns:t = "http://tapestry.apache.org/schema/tapestry_5_0_0.xsd" >      
  2.     < t:beaneditform   t:id = "user"   submitlabel = "Create User"   object = "user" />   
  3.       
  4.     < h1 > List Users </ h1 >   
  5.         < t:grid   source = "users"   row = "user"   rowsPerPage = "5"   pagerPosition = "bottom"   empty = "nodata"   
  6.          t:rowClass = "literal:evenodd"   add = "operation" >   
  7.             < t:parameter   name = "userNameCell" >   
  8.                 < t:pagelink   page = "user/edit"   context = "user.id" > ${user.userName} </ t:pagelink >   
  9.             </ t:parameter >   
  10.             < t:parameter   name = "operationCell" >   
  11.                 < t:actionlink   t:id = "delete"   context = "user.id" > Delete </ t:actionlink >   
  12.             </ t:parameter >   
  13.         </ t:grid >   
  14. </ t:layout >      
<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文件

Java 代码
  1. package  com.logcd.tapestry5.myapp.pages.user;  
  2.   
  3. import  java.util.List;  
  4.   
  5. import  org.apache.tapestry5.annotations.IncludeStylesheet;  
  6. import  org.apache.tapestry5.ioc.annotations.Inject;  
  7.   
  8. import  com.logcd.myapp.dao.UserDao;  
  9. import  com.logcd.myapp.models.User;  
  10.   
  11. @SuppressWarnings ( "unchecked" )  
  12. @IncludeStylesheet ( "classpath:com/logcd/tapestry5/myapp/pages/user/CreateUser.css" )  
  13. public   class  CreateUser {  
  14.   
  15.     private  User user;  
  16.       
  17.     @Inject   
  18.     private  UserDao userDao;  
  19.   
  20.     public  CreateUser(){}  
  21.       
  22.     public   void  setUser(User user) {  
  23.         this .user = user;  
  24.     }  
  25.   
  26.     public  User getUser() {  
  27.         return  user;  
  28.     }  
  29.   
  30.     Object onSuccess() {  
  31.         user.setPhones(null );  
  32.         userDao.save(user);  
  33.         return  CreateUser. class ;  
  34.     }  
  35.       
  36.     void  onActionFromDelete( long  userId){  
  37.         userDao.delete(userDao.findById(userId));  
  38.     }    
  39.      
  40.     public  List<User> getUsers() {  return  userDao.findAll(); }  
  41. }  
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文件

Java 代码
  1. #定义表头 文本  
  2. operation-label=操作  
  3. userName- label=用户名称  
  4. emailAddress-label=电子邮箱  
  5. birthday- label=出生日期  
  6. role-label=角色  
#定义表头文本
operation-label=操作
userName-label=用户名称
emailAddress-label=电子邮箱
birthday-label=出生日期
role-label=角色


也可以在java文件中定义表头

Java 代码
  1. @Inject     
  2. private  BeanModelSource beanModelSource;     
  3.   
  4. @Inject     
  5. private  ComponentResources componentSources;   
  6.    
  7. @Inject      
  8. private  Messages _messages;   
  9.   
  10. private  BeanModel userBeanModel;  
  11. public  BeanModel getUserBeanModel(){  
  12.     return  buildUserBeanModel(beanModelSource,componentSources);  
  13. }  
  14.   
  15. public  BeanModel buildUserBeanModel(BeanModelSource beanModelSource, ComponentResources componentSources){  
  16.     if (userBeanModel ==  null ){  
  17.         userBeanModel = beanModelSource.createEditModel(User.class ,_messages);   
  18.         userBeanModel.get("userName" ).label( "用户名" );  
  19.         userBeanModel.get("emailAddress" ).label( "电子邮箱" );  
  20.         userBeanModel.get("birthday" ).label( "出生日期" );  
  21.         userBeanModel.get("role" ).label( " 角色" );  
  22.         userBeanModel.add("operation" , new  LogcdPropertyConduit()).label( "操作" );  
  23.     }  
  24.     return  userBeanModel;  
  25. }  
	@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"就可以了。

Java 代码
  1. public   class  LogcdPropertyConduit  implements  PropertyConduit{  
  2.   
  3.     public  Object get(Object arg0) {  
  4.         return   "" ;  
  5.     }  
  6.   
  7.     @SuppressWarnings ( "unchecked" )  
  8.     public  Class getPropertyType() {  
  9.         return  String. class ;  
  10.     }  
  11.   
  12.     public   void  set(Object arg0, Object arg1) {  
  13.           
  14.     }  
  15.   
  16.     public  <T  extends  Annotation> T getAnnotation(Class<T> arg0) {  
  17.         return   null ;  
  18.     }  
  19.   
  20. }  
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文件

Css代 码
  1. table.t-data-grid {  
  2.     border-collapse: collapse;  
  3.     border-left: 1px solid silver;  
  4.     width: 100 %;  
  5. }  
  6.   
  7. table.t-data-grid thead tr th{  
  8.     background: #990000   
  9.     color: white;  
  10.     text-align: center;  
  11.     vertical-align: middle;  
  12.     font-size:10px;  
  13. }  
  14.   
  15. div.t-data-grid-pager span.current {  
  16.     background: #FFFFFF none repeat scroll 0 %;  
  17.     border: 1px solid #CCCCCC;  
  18.     color: #CCCCCC;  
  19.     padding: 2px 5px;  
  20.     text-decoration: none;  
  21. }  
  22.   
  23. div.t-data-grid-pager a:hover {  
  24.     background: #CC0000 none repeat scroll 0 %;  
  25.     color: #FFFFFF;  
  26. }  
  27.   
  28. div.t-data-grid-pager a {  
  29.     border: 1px solid silver;  
  30.     color: #CC0000;  
  31.     font-size: medium;  
  32.     margin-right: 5px;  
  33.     padding: 2px 5px;  
  34.     text-decoration: none;  
  35. }  
  36.   
  37. div.t-data-grid-pager span.current {  
  38.     border: 1px solid silver;  
  39.     color: black;  
  40.     font-size: medium;  
  41.     margin-right: 5px;  
  42.     padding: 2px 5px;  
  43.     text-decoration: none;  
  44. }  
  45.   
  46. .evenodd {  
  47.     line-height: 23px;  
  48.     background-color: expression(( this.sectionRowIndex % 2  ==  0 ) ?  
  49.         "#E6EFF7"  :  "#F4F8FF"  );  
  50. }  
  51.   
  52. .userName,.operation,.birthday,.role{  
  53.     text-align: center;  
  54.     vertical-align: middle;  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值