0

我的 JSF 之一通过元数据和 f:ViewParm 标记接收参数。我在预渲染视图的支持 bean 中使用这些参数来查询数据库并为数据表视图构建我的列表。它工作正常,但现在我需要切换到lazyDataModel(我使用的是 Primefaces 3.2)。如果我按照示例进行操作,那么我需要实现在支持 bean 的构造函数中完成的 LazyDataModel。我可以这样做,但是我无法访问参数。我的问题是如何获取参数并传递给实现 LazyDataModel 的类(比如 LazyCarDataModel)。我想在 LazyCarDataModel 的重写加载方法中使用这些参数。我无法访问构造函数中的传入参数。任何处理这种情况的建议/技巧将不胜感激。

彼得

4

1 回答 1

1

<f:event type="preRenderView">在设置视图参数后,您可以使用它来调用支持 bean 方法。

例如

<f:metadata>
    <f:viewParam name="carId" value="#{bean.car}" converter="#{carConverter}" />
    <f:event type="preRenderView" listener="#{bean.init}" />
</f:metadata>

private Car car;
private transient DataModel<Something> model;

public void init() {
    model = buildSomehowBasedOn(car);
}

您也可以在数据表的 getter 中引入延迟加载。

public DataModel<Something> getModel() {
    if (model == null) {
        model = buildSomehowBasedOn(car);
    }

    return model;
}
于 2012-04-06T03:02:30.237 回答