0

继续教程我遇到了一个错误。以前的问题似乎已经解决了。

教程说:要使用创建的 CelebritySource,请将以下方法添加到 ShowAll 页面类:

public GridDataSource getCelebritySource()
{
return new CelebritySource(dataSource);
}

然后在 ShowAll.tml 模板中更改 Grid 组件的 source 参数:

<t:grid t:source="celebritySource" rowsPerPage="5"
row="celebrity" t:model="model">

运行应用程序。登录查看 ShowAll 页面,一旦显示名人表,您应该会看到以下输出:

准备选择。索引从 0 到 4 属性名称为:null 排序顺序升序:true 获取第 0 行的值 获取第 1 行的值 获取第 2 行的值 获取第 3 行的值 获取第 4 行的值

页面有错误:

发生了意外的应用程序异常。

异常组装页面 ShowAll 的根组件:无法将“模型”转换为组件参数绑定:表达式“模型”的异常生成管道:类 org.apache.tapestry.pages.ShowAll 不包含名为的属性(或公共字段) '模型'。

从 t:grid 中删除 t:model="model" 后

页面有错误:

发生了意外的应用程序异常。

SetupRender [ShowAll:grid] 中的渲染队列错误:索引:0

外面有人有这个问题吗?

4

1 回答 1

2

似乎该示例缺少一些代码。尝试将以下内容添加到页面ShowAll.java

@Inject
private BeanModelSource beanModelSource;

@Inject
private Messages messages;

public BeanModel<Celebrity> getModel() {
  return beanModelSource.createDisplayModel(Celebrity.class, messages);
}

来自T5 网格组件参考

用于标识要呈现的属性和呈现顺序的模型。

以上应该为您创建一个基于公共方法和属性的默认 BeanModel。

于 2012-09-02T11:48:27.477 回答