我正在嘗試使用JSF ajax請求更改輸入的值。要更改值的JSF ajax事件
我有一個JSF代碼:
<h:inputSecret id="pwd" value="#{info.password}" redisplay="true">
<f:ajax event="focus" listener="#{info.changePassword}" />
</h:inputSecret>
和info
bean包含:
public String getPassword() {
return "";
}
public void changePassword(AjaxBehaviorEvent e) {
UIInput input = (UIInput)e.getComponent();
input.setValue(createRandomPassword());
}
createRandomPassword()
產生短期的隨機字符串。
但是當輸入獲得焦點,我可以看到changePassword
函數被調用,並設置了一些隨機字符串,但輸入的值保持爲空。
那麼,爲什麼不setValue
設定的值到組件?我怎樣才能使它工作?
屬性,因爲你無處告訴它更新UI的一面。您只需更新服務器端模型。但爲什麼不設置創建一個名爲「密碼」的字段,並設置而不是從事件獲取輸入? – Kukeltje
@Kukeltje我是JSF的新手,我認爲它會完成這項工作。你能告訴我一個例子嗎? – nrofis
請從一些**好**教程開始......請參閱https://stackoverflow.com/tags/jsf/info這是一個基本的東西,閱讀這些會讓你知道這個和更多的東西.. – Kukeltje