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
我有一个 .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 changeh:
too:
.
因此,将您的 <h:form>
替换为
<o:form includeRequestParams="true">
或
<o:form useRequestURI="true">
另请参阅:
- Retaining GET request query string parameters on JSF form submit