Tapestry5 grid

刺骨的言语ヽ痛彻心扉 2022-07-12 10:49 280阅读 0赞

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. < h1 > List Users </ h1 >
  4. < t:grid source = “users” row = “user” rowsPerPage = “5” pagerPosition = “bottom” empty = “nodata”
  5. t:rowClass = “literal:evenodd” add = “operation” >
  6. < t:parameter name = “userNameCell” >
  7. < t:pagelink page = “user/edit” context = “user.id” > ${user.userName} </ t:pagelink >
  8. </ t:parameter >
  9. < t:parameter name = “operationCell” >
  10. < t:actionlink t:id = “delete” context = “user.id” > Delete </ t:actionlink >
  11. </ t:parameter >
  12. </ t:grid >
  13. </ t:layout >

    1. <t:beaneditform t:id="user" submitlabel="Create User" object="user"/>
    2. <h1>List Users</h1>
    3. <t:grid source="users" row="user" rowsPerPage="5" pagerPosition="bottom" empty="nodata"
    4. t:rowClass="literal:evenodd" add="operation">
    5. <t:parameter name="userNameCell">
    6. <t:pagelink page="user/edit" context="user.id">${user.userName}</t:pagelink>
    7. </t:parameter>
    8. <t:parameter name="operationCell">
    9. <t:actionlink t:id="delete" context="user.id">Delete</t:actionlink>
    10. </t:parameter>
    11. </t:grid>

2.java文件

Java 代码

  1. package com.logcd.tapestry5.myapp.pages.user;
  2. import java.util.List;
  3. import org.apache.tapestry5.annotations.IncludeStylesheet;
  4. import org.apache.tapestry5.ioc.annotations.Inject;
  5. import com.logcd.myapp.dao.UserDao;
  6. import com.logcd.myapp.models.User;
  7. @SuppressWarnings ( “unchecked” )
  8. @IncludeStylesheet ( “classpath:com/logcd/tapestry5/myapp/pages/user/CreateUser.css” )
  9. public class CreateUser {
  10. private User user;
  11. @Inject
  12. private UserDao userDao;
  13. public CreateUser(){}
  14. public void setUser(User user) {
  15. this .user = user;
  16. }
  17. public User getUser() {
  18. return user;
  19. }
  20. Object onSuccess() {
  21. user.setPhones(null );
  22. userDao.save(user);
  23. return CreateUser. class ;
  24. }
  25. void onActionFromDelete( long userId){
  26. userDao.delete(userDao.findById(userId));
  27. }
  28. public List getUsers() { return userDao.findAll(); }
  29. }

    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 {

    1. private User user;
    2. @Inject
    3. private UserDao userDao;
    4. public CreateUser(){}
    5. public void setUser(User user) {
    6. this.user = user;
    7. }
    8. public User getUser() {
    9. return user;
    10. }
    11. Object onSuccess() {
    12. user.setPhones(null);
    13. userDao.save(user);
    14. return CreateUser.class;
    15. }
    16. void onActionFromDelete(long userId){
    17. userDao.delete(userDao.findById(userId));
    18. }
    19. 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. @Inject
  4. private ComponentResources componentSources;
  5. @Inject
  6. private Messages _messages;
  7. private BeanModel userBeanModel;
  8. public BeanModel getUserBeanModel(){
  9. return buildUserBeanModel(beanModelSource,componentSources);
  10. }
  11. public BeanModel buildUserBeanModel(BeanModelSource beanModelSource, ComponentResources componentSources){
  12. if (userBeanModel == null ){
  13. userBeanModel = beanModelSource.createEditModel(User.class ,_messages);
  14. userBeanModel.get(“userName” ).label( “用户名” );
  15. userBeanModel.get(“emailAddress” ).label( “电子邮箱” );
  16. userBeanModel.get(“birthday” ).label( “出生日期” );
  17. userBeanModel.get(“role” ).label( “ 角色” );
  18. userBeanModel.add(“operation” , new LogcdPropertyConduit()).label( “操作” );
  19. }
  20. return userBeanModel;
  21. }

    @Inject

    1. private BeanModelSource beanModelSource;
    2. @Inject
    3. private ComponentResources componentSources;
    4. @Inject
    5. private Messages _messages;
    6. private BeanModel userBeanModel;
    7. public BeanModel getUserBeanModel(){
    8. return buildUserBeanModel(beanModelSource,componentSources);
    9. }
    10. public BeanModel buildUserBeanModel(BeanModelSource beanModelSource, ComponentResources componentSources){
    11. if(userBeanModel == null){
    12. userBeanModel = beanModelSource.createEditModel(User.class,_messages);
    13. userBeanModel.get("userName").label("用户名");
    14. userBeanModel.get("emailAddress").label("电子邮箱");
    15. userBeanModel.get("birthday").label("出生日期");
    16. userBeanModel.get("role").label("角色");
    17. userBeanModel.add("operation",new LogcdPropertyConduit()).label("操作");
    18. }
    19. return userBeanModel;
    20. }

同时给grid标签加上model=”userBeanModel”就可以了。

Java 代码

  1. public class LogcdPropertyConduit implements PropertyConduit{
  2. public Object get(Object arg0) {
  3. return “” ;
  4. }
  5. @SuppressWarnings ( “unchecked” )
  6. public Class getPropertyType() {
  7. return String. class ;
  8. }
  9. public void set(Object arg0, Object arg1) {
  10. }
  11. public T getAnnotation(Class arg0) {
  12. return null ;
  13. }
  14. }

    public class LogcdPropertyConduit implements PropertyConduit{

    1. public Object get(Object arg0) {
    2. return "";
    3. }
    4. @SuppressWarnings("unchecked")
    5. public Class getPropertyType() {
    6. return String.class;
    7. }
    8. public void set(Object arg0, Object arg1) {
    9. }
    10. public <T extends Annotation> T getAnnotation(Class<T> arg0) {
    11. return null;
    12. }

    }

4.css文件

Css代 码

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

发表评论

表情:
评论列表 (有 0 条评论,280人围观)

还没有评论,来说两句吧...

相关阅读