【问题标题】:PrimeFaces datatable.filter() and url parameterPrimeFaces datatable.filter() 和 url 参数
【发布时间】:2015-08-19 09:23:00
【问题描述】:

我有一个 .xhtml 模型,其中包含一个 primeface 数据表。 我用这样的 URL 调用页面: http://localhost:8080/myproject/mypage.jsf?Id=51&startDate=04-05-2015&name=whatever

URL 参数用于检索将在数据表中显示的内容,因此它允许我过滤内容。 我使用 URL 参数是因为当我在另一个数据表中选择一行时会显示此页面,因此我必须手动重定向到烘焙 bean 上的此页面。

但是,每次我使用诸如排序或分页之类的 primeface 功能时,primeface 似乎都会对支持 bean 进行 ajax 调用,但没有参数,因此会显示每个对象而不是过滤的对象列表。

因此,如何强制 primefaces 使用这些参数?或者我怎样才能将它们传递给 primefaces 范围(它们是支持 bean 上的 @ManagedProperty)

【问题讨论】:

    标签: jsf primefaces filter datatable http-request-parameters


    【解决方案1】:

    最好和最简单的方法是使用OmniFaces utility library,更具体地说是他们的<o:form>

    来自文档:

    <o:form> 是一个扩展标准 <h:form> 的组件,并提供了一种在回发后在请求 URL 中保留视图或请求参数的方法

    ...

    可以和<h:form>一样使用,只需将h:改为o:即可。

    因此,请将您的 <h:form> 替换为任一

    <o:form includeRequestParams="true">
    

    <o:form useRequestURI="true">
    

    另见:

    【讨论】:

    • 确实成功了,谢谢!而且由于它不与 PrimeFace 功能重叠,因此将 OmniFace 添加到项目中没有问题。它迫使我最终使用 CDI ^^
    • 添加 OmniFaces 甚至是一个不错的选择。很多方便的东西
    • @BalusC Huumm 我在数据表上有一个奇怪的错误,它位于具有 includeRequestParams="true" 的 o:form 中(与
      相同)。排序正在删除 PrimeFace 数据表过滤。我可以单独排序并单独过滤没有问题,但是当我在过滤后对数据进行排序时,它会删除过滤器。再次单击同一过滤器不会执行任何操作,但过滤另一个值将显示预期结果。有什么线索吗?
    • 请在新问题中提出新问题。在那个新问题中,还要发布版本信息
    猜你喜欢
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多