2017-06-17 40 views
2

如何獲取 processUpdates方法中的後備組件中的發佈表單數據?從複合組件獲取備份組件中的呈現的html代碼

@Override 
    public void processUpdates(FacesContext context) { 
//get here rendered html code 
} 

或者我可以在decode方法中獲得張貼的表格數據嗎?

[編輯]: 我的目標是讓發佈表單數據 - 不要讓生成的HTML代碼(Sry基因我是不準確)

+1

嘗試從生成的HTML中獲取輸入值是瘋狂的。你有一個完整的服務器端框架,其主要目標是模擬有狀態通信。請發佈您的xhtml(facelets)代碼,以便我能夠理解您嘗試存檔的內容,而不是您想要解決的問題:)也許您需要類似[PrimeFaces **自定義佈局**單選按鈕輸入](https:/ /www.primefaces.org/showcase/ui/input/oneRadio.xhtml)? –

+0

@MicheleMariotti我很高興,我試着說,我需要獲取發佈的表單數據,而不是生成的html。我編輯了我的問題。 – Briefkasten

回答

1

目前尚不清楚你想要才達到什麼,可是。我的意思是,在高層次。

UIComponent.decodeprocessUpdates是中等級別生命週期API,當您想要擴展框架時應該重寫。

如果你只需要使用框架,你需要一個託管bean,不是後盾組件

此外,通常只有擴展UIInput組件需要在這些階段掛鉤,因爲它們被結合到value="#{...}"值表達式(這又是指託管bean,在大多數情況下),並且需要使這些值與綁定表達式同步。

我懷疑你是無用地使你的生活複雜化:如果你對框架的運行方式沒有很好的理解,那麼掛鉤到中等或低級別的API是一個真正的痛苦。

無論如何,標準請求參數解碼到輸入組件是這樣的:

String clientId = this.getClientId(context); 

Map<String, String> requestMap = context.getExternalContext().getRequestParameterMap(); 

String newValue = requestMap.get(clientId); 
if (newValue != null) 
{ 
    this.setSubmittedValue(newValue); 
} 

請,後(使用未複合之一,但的facelet 即複合物)的完整的XHTML的facelet代碼,所以我可以理解你想去的地方,我可以試着指引你使用正確的工具。