[英]JSF AJAX URL Param update
我有一個場景,其中的頁面可以顯示數據表。 數據表數據是由用戶選擇的,但必須有可能提供直接URL,以將特定數據加載到表中。 為此,我在URI中使用參數來確定應加載的服務(www.example.com?service=1)。
用戶單擊一項服務,URL更改為www.example.com?service=2,該服務的數據通過AJAX加載並顯示在頁面上。 沒有回發,只有部分頁面刷新。 我想避免完整的頁面重新加載,因為只有數據表需要重新加載。
更新
目前,我正在重定向整個頁面
FacesContext.getCurrentInstance().getExternalContext().redirect(url);
並嘗試使用
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("service");
但是,這真的不是我想要實現的,因為它需要重新加載許多不必要的數據,這會使頁面上其他屬性的管理變得更加復雜! 我想更新參數並讀取它們,但只能重新加載數據表。
我是JSf的新手,但我認為這會有所幫助,這是一個簡單的示例:
假設您有一個<h:inputText>
,其對象屬性為值,例如:
<h:form id="formUser">
<h:inputText value="#{userBean.name}" id="userName" />
</h:form>
如果您需要使用ajax調用來更新name屬性:
<h:commandButton value="Update user" action="#{userBean.updateUserName}">
<f:ajax render="formUser:userName" execute="formUser:userName" />
</h:commandButton>
render屬性將使元素重新加載到頁面上。 在這種情況下,execute將使元素將值設置為UserBean
的name
屬性。
這樣,當您在該inputText
上鍵入名稱並單擊commandButton
,它將執行name的set方法並在視圖上重新呈現輸入,以便出現新值。
但是,如果你需要一個link
這里是從例子在這里 :
<h:link value="Login page + Param " outcome="login" >
<f:param name="username" value="mkyong" />
</h:link>
那是你真正想要的嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.