# JSF - Session invalidate bei outpulink möglich?



## y0dA (4. Jul 2007)

Hi!


```
<h:panelGroup>
				<h:outputLink rendered="#{placeDetail.showBackButton}" value="#{placeDetail.referer}">
					<h:outputText value="#{labels.back}" styleClass="txtgruen"/>
				</h:outputLink>
			</h:panelGroup>
```

Ist es möglich dass ich hier irgendwo die session ungülitg machen kann, nachdem auf den link geklickt wurde?

mfg


----------



## WeirdAl (4. Jul 2007)

Hi,
wenn Du anstatt des outputLink ein commandLink nutzt, kannst Du eine Action/ActionListener definieren, die dann "gefeuert" wird. In der  Actionmethode kannst Du dann einfach die session ungültig machen.

Cu
Alex


----------



## y0dA (9. Jul 2007)

Hi!
Nur kann ich mit einem commandLink nicht auf eine "fremde Applikation" forwarden. Es hat schon einen Sinn warum ich einen outputlink machen möchte.


----------



## orribl (9. Jul 2007)

Hi,

geht das nicht ueber 

```
FacesContext.getCurrentInstance().getExternalContext().redirect("http://www.irgendwas.de");
```


----------



## y0dA (9. Jul 2007)

hmm..muss ich mal antesten.

**EDIT**
Ok, das funktioniert - nun stellt sich mir nur mehr die Frage wie ich eine Managed Bean (session scope) ungültig machen kann, damit die beim nächsten request neu instanziert wird?

Jemand eine Idee?

**EDIT**
ok mache es nun so:


```
public void doRedirect(final ActionEvent event)  {
		try {
			//FIXME redirect auf referer od constante machen od von paramcontrl
			FacesContext.getCurrentInstance().getExternalContext().redirect(this.referer);
		} catch (IOException e) {
			e.printStackTrace();
		}
		this.doInvalidateSession();
	}

	public void doInvalidateSession () {
		HttpSession servletSession = 
			(HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
		servletSession.invalidate();
	}
```


----------

