2017-06-17 3 views
2

Wie kann ich die veröffentlichten Formulardaten in der Backing-Komponente in der processUpdates Methode erhalten?Get gerenderten HTML-Code in Backing-Komponente von Composite Component

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

Oder kann ich die Formulareingaben in der decode Methode bekommen?

[Bearbeiten]: Mein Ziel ist es, die Formulareingaben zu erhalten - nicht die generierten HTML-Code zu erhalten (Sry ich war nicht gerade)

+1

Der Versuch, Eingabewerte aus generiertem HTML zu erhalten, ist verrückt. Sie haben ein vollwertiges serverseitiges Framework, das das Hauptziel hat, statusbehaftete Kommunikation zu simulieren. Bitte posten Sie Ihren xhtml (facelets) Code, damit ich verstehen kann, was Sie versuchen zu erreichen, nicht was Sie lösen möchten :) Vielleicht möchten Sie etwas wie [PrimeFaces ** benutzerdefiniertes Layout ** Radio Button-Eingabe] (https://www.primefaces.org/showcase/ui/input/oneRadio.xhtml)? –

+0

@MicheleMariotti Ich bin sry, ich habe versucht zu sagen, dass ich die geposteten Formulardaten bekommen muss, nicht die generierte HTML. Ich habe meine Frage bearbeitet. – Briefkasten

Antwort

1

Es ist unklar, was Sie achive wollen, noch nicht. Ich meine, auf hohem Niveau.

UIComponent.decode und processUpdates sind mittelaktive Lifecycle-APIs, die außer Kraft gesetzt werden soll, wenn Sie wollen den Rahmen erweitern.

Wenn Sie nur Verwendung benötigen das Framework, benötigen Sie einen Managed Bean, keine Trägerkomponente.

Weiterhin allgemein nur Komponenten, die UIInput verlängern müssen in diesen Phasen einzuhaken, weil sie zu einer Expression value="#{...}" Wert gebunden sind (die wiederum zu einer Managed Bean bezieht, in den meisten Fällen), und müssen Synchronisiere diese Werte mit dem gebundenen Ausdruck.

Ich vermute, dass Sie Ihr Leben unnötig verkomplizieren: Das Einbinden in mittlere oder niedrige APIs ist ein echter Schmerz, wenn Sie nicht ein exzellentes Verständnis darüber haben, wie das Framework funktioniert.

die Standardanfrage Wie auch immer, die Parameter dekodieren in Eingabekomponente ist dies:

String clientId = this.getClientId(context); 

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

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

Bitte senden Sie das vollständige xhtml Facelet Code (nicht der Verbund ein, aber die Facelet mit dass Composite), So kann ich verstehen, wohin Sie gehen möchten und ich kann versuchen, Sie auf das richtige Werkzeug hinzuweisen.

Verwandte Themen