Java JSF AJAX URL参数更新
我有一个场景,其中我有一个能够显示datatable的页面。datatable数据由用户选择,但必须能够提供直接URL将特定数据加载到表中。为了实现这一点,我在URI中使用参数来确定应该加载的服务(www.example.com?service=1) 用户单击一个服务,URL变为www.example.com?service=2,来自该服务的数据通过AJAX加载并显示在页面上。没有回发,只有部分页面刷新。我希望避免完全重新加载页面,因为只有datatable需要重新加载Java JSF AJAX URL参数更新,java,ajax,url,jsf,param,Java,Ajax,Url,Jsf,Param,我有一个场景,其中我有一个能够显示datatable的页面。datatable数据由用户选择,但必须能够提供直接URL将特定数据加载到表中。为了实现这一点,我在URI中使用参数来确定应该加载的服务(www.example.com?service=1) 用户单击一个服务,URL变为www.example.com?service=2,来自该服务的数据通过AJAX加载并显示在页面上。没有回发,只有部分页面刷新。我希望避免完全重新加载页面,因为只有datatable需要重新加载 在不重新加载页面的情况下
FacesContext.getCurrentInstance().getExternalContext().redirect(url);
并尝试使用
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("service");
然而,这并不是我想要达到的目的,因为它会重新加载大量不必要的数据,并且会使管理页面上的其他属性变得更加复杂!我想更新参数并读取它们,但只重新加载数据表。我对JSf不熟悉,但我认为这会有所帮助,这是一个简单的示例: 假设您有一个
,对象属性作为值,如:
<h:form id="formUser">
<h:inputText value="#{userBean.name}" id="userName" />
</h:form>
这就是你真正想要的吗?@Daniel我更新了帖子。谢谢Daniel,这不是我想要的。一般来说,使用ajax执行部分页面重新加载不会有问题。我的问题是执行ajaxurl参数更新,然后执行ajaxurl参数读取。因此,我想通过ajax将URL从www.example.com?service=1更改为www.example.com?service=2,而无需重新加载页面。
<h:commandButton value="Update user" action="#{userBean.updateUserName}">
<f:ajax render="formUser:userName" execute="formUser:userName" />
</h:commandButton>
<h:link value="Login page + Param " outcome="login" >
<f:param name="username" value="mkyong" />
</h:link>