# JSF und HTML-Code



## Korki (26. Sep 2009)

Hallo,

gibt es eine Möglichkeit mir den gerenderten HTML-Code über eine Methode zu holen?

Im Internet gibt es immer Beispiele wie der JSF-Code als HTML aussieht...
z.B:
http://jsfatwork.irian.at/semistati...rd_components.html:fig:uidata-add-html-simple

kann man da irgendwie ran kommen?

mfg

P.S. Danke im Voraus


----------



## MrWhite (28. Sep 2009)

Hmm, gute Frage.

Du kommst, denke ich, mit 


```
FacesContext.getCurrentInstance().getExternalContext().getResponse();
```

an den Output ran.

Es kann allerdings sein, dass dies zu früh oder zu spät im JSF Lifecycle geschieht. Dann musst du einen PhaseListener schreiben und registrieren, der nach der RenderResponse-Phase die Response aus dem FacesContext ausliest.

Idee:

```
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;

public class HtmlListener implements PhaseListener
{

	public PhaseId getPhaseId()
	{
		return PhaseId.ANY_PHASE;
	}

	public void beforePhase(PhaseEvent event)
	{

	}

	public void afterPhase(PhaseEvent event)
	{
		if(event.getPhaseId() == PhaseId.RENDER_RESPONSE)
		{
			Object response = event.getFacesContext().getExternalContext().getResponse();
			/* ... */
		}
	}
}
```

ExternalContext (JavaServer Faces (1_1_01))

HTH,
MrWhite


----------



## MrWhite (28. Sep 2009)

Wollte nur noch sagen:

Die von dir gezeigte Seite macht das sicher nicht dynamisch, sondern da haben eher die Autoren das erzeugte HTML rauskopiert und auf die Website gepackt.


----------

