PrimeFaces datatable.filter() 和 url 参数

PrimeFaces datatable.filter() and url parameter

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

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

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

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

最好和最简单的方法是使用 OmniFaces utility library and more specifically their <o:form>

来自文档:

The <o:form> is a component that extends the standard <h:form> and provides a way to keep view or request parameters in the request URL after a post-back

...

You can use it the same way as <h:form>, you only need to change h: to o:.

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

<o:form includeRequestParams="true">

<o:form useRequestURI="true">

另请参阅:

  • Retaining GET request query string parameters on JSF form submit