# JSF und Browser Refresh



## RefreshRalf (23. Feb 2010)

Hallo, 

ich möchte, eine Backing Bean Methode nur ausführen, wenn der Browser refreshed worden ist (bspw. wenn man F5 gedrückt hat). 

public void wasRefreshed(Event e){
    System.out.println("Sie haben den Browser aktualisiert.");
}

Wisst ihr wie/ob das möglich ist?

Danke, 
Ralf


----------



## KYLT (23. Feb 2010)

Hi,nur um nochmal sicher zu gehen, geht es dir darum eine Methode zu schreiben, die nicht beim Seitenaufruf selbst, sondern nur bei refresh ausgeführt wird, oder geht es dir darum , sobald der Browser einen Refresh ausführt die Daten für etwas neu zu laden?


----------



## Deadalus (23. Feb 2010)

Ja denke mal das sollte gehen.  In der <f:view> Komponente gibt es die Attribute:

afterPhase="" 
beforePhase=""

Da solltest du eine Methode in einem BackingBean aufrufen können. Die Methode braucht dann aber keinen ActionEvent sondern einen PhaseEvent. Sollte in etwas so aussehen:



```
public void wasRefreshed(PhaseEvent e) {
       System.out.println("Sie haben den Browser aktualisiert.");
    }
```


----------



## RefreshRalf (23. Feb 2010)

@KYLT: Ich meine einfach den Refresh, den man manuell ausführt

@Deadalus: Hab ich probiert, die Methode wird aber bei keinem der beiden Attribute aufgerufen 

(Bin morgen wieder da)


----------



## KYLT (23. Feb 2010)

Versuch es doch mal: 

```
<f:event type="preRenderView" listener="#{bean.method}"/>
```


----------



## RefreshRalf (24. Feb 2010)

Hmm. Das ist jetzt MyFaces, oder? Ich verwende bis jetzt eigentlich die RI, kann aber auf MyFaces wechseln, wenn das kompatibel ist. Ist es?


----------



## MrWhite (25. Feb 2010)

_*HTTP ist zustandslos!*_ Ob der User den Refresh veranlasst hat ist also serverseitig nicht zu unterscheiden von einem normalen Request.

Um den Refresh dem Server mittzuteilen, müsste man sich schon in den Aktualisierungs-Event des Browsers einhaken, z.B. mit Javascript in den Druck der F5 Taste und dann einen entsprechenden Request-Parameter mitsenden.


----------



## RefreshRalf (2. Mrz 2010)

...falls jemand mal das gleiche vorhat; Das hat geholfen: Detecting Page Refresh Using JavaScript

Danke euch allen!


----------

