2010-07-14 48 views
2

與所有頁面一樣,輸入字段框填充爲#{ad.userid}。即使當我輸入有效值時,他們在操作方法中訪問託管bean時會給出null值。這怎麼可能發生,我該如何解決這個問題?bean操作方法中的輸入字段值爲空

+0

,請把你的時間來給予必要的細節和構造您以更可讀的方式提問。 – Bozho 2010-07-14 15:55:48

+0

提示:不要假設回答你上一個問題的同一個人也會看到這個問題。 ;-) – Tomalak 2010-07-14 15:56:04

回答

1

這可以通過不必要地具有h:commandButtonimmediate="true"引起的,或通過使用rendered,在輸入字段disabledreadonly屬性(或它的父組件中的一個),它們取決於一請求範圍豆未正確地保留在隨後的請求中。還有更多可能的原因,但這太多了。前面提到的是起始者中至少最常見的原因。

要了解更多有關JSF生命週期,這樣就可以得到一個更好地瞭解什麼是所有發生的事情「的罩下」,這樣就可以打釘更好下來自己,檢查這篇文章:Debug JSF lifecycle

+0

事實上,我使用了「禁用」,並且在模糊ajax事件和後者onclick commandbutton事件之間的編排之間沒有適當地工作。我擺脫了殘疾,它像往常一樣工作(在這裏描述:http://stackoverflow.com/questions/40596558/primefaces-6-0-inputtext-ajax-event-commandbutton-event-yields-null-bean-fie) 。 – 2016-11-15 01:18:18

0

我面臨somthing like this,它被解決了,當我用

<p:ajax event="change" update="componenet_ID" process="@form" listener="#{ManagedBeen.action}" /> 
1

我有同樣的問題。在我的情況,我在的地方,這些進口在我的豆:

import javax.faces.bean.RequestScoped; 
import javax.inject.Named; 

@Named(value = "fooBean") 
@RequestScoped 
public class FooBean { 
... 
} 

,而不是這些:

import javax.enterprise.context.RequestScoped; 
import javax.inject.Named; 

參見:https://stackoverflow.com/a/9921449/4402950