aktuelle Seite neu laden

Smoothi

Bekanntes Mitglied
Ich möchte innerhalb des JavaCodes eine Seite neu laden.

Code:
FacesContext fc = FacesContext.getCurrentInstance();
fc.getApplication().getNavigationHandler().handleNavigation(fc, null, site + "?faces-redirect=true");

Damit navigier ich zur Zeit etwas umher. Das ist ja auch kein Problem...

Entweder ich bekomme nun heraus, was die aktuelle Seite ist, oder es gibt eine Art reload?!

Jemand eine Idee? 😉
 
Zuletzt bearbeitet:
Führst Du das innerhalb einer Action aus? Du kannst Dir aus dem FacesContext auf den aktuellen Request holen und dort die Seite auslesen.
 
Nunja.. ich führ es innerhalb eines ValueChangeListeners durch.

Das Problem ist, dass ich bei einem SelectOneMenu (JSF) per Klick direkt weitergeleitet werde, ohne dass ich erst ein Knöpfchen drücken will.

Also ich wähle einen Eintrag aus, es wird der jeweilige Wert gesetzt und dann soll die Seite aktualisiert bzw. mit dem Wert neu geladen werden. 😉

Vielleicht seh ich den Wald vor lauter Bäumen nicht.

Ich habs versucht mit:
Code:
fc.getExternalContext().getRequest()

...aber damit lässt sich anscheinend nich viel machen

Hab jetzt auch keine Funktion gefunden, womit ich die aktuelle Seite bekomme :/

PS: hier scheint ein Fehler im Forum zu sein.
Der Titel ist: aktuelle Seite neu laden..
im ersten Beitrag steht: aktuelle aktuelle Seite neu laden
und in der Threadübersicht steht: aktuelle Allgemeines EE
 
Zuletzt bearbeitet:
Du möchtest wirklich einen Redirect auf eine Seite machen oder nur die Seite aktualisieren?

Letzteres kannst Du in JSF über ein "render" lösen.

So ungefährt:

[xml]<h:selectOneMenu ... >
<f:ajax event="change" render="eineId" />
</h:selectOneMenu>[/xml]
 
Naja... im Endeffekt muss so viel aktualisiert werden, dass es schon günstig wär, wenn die gesamte Seite neu geladen wird. 😉

Ich glaube nicht, dass die Scope-Auswahl so entscheident is.. es arbeiten vllt maximal (!) 8-10 Leute gleichzeitig damit (wenn überhaupt) und die Anwendung läuft nur lokal. Zumal die Funktion nicht allzu häufig genutzt wird...
 
So, ich habe etwas experimentiert, was zumindest erstmal funktioniert... vllt gehts aber noch einfacher 😉

Code:
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
String uri = request.getRequestURI();
fc.getApplication().getNavigationHandler().handleNavigation(fc, null, uri.substring(uri.lastIndexOf("/")) + "?faces-redirect=true");
 
Zuletzt bearbeitet:
oder noch einfacher

Java:
FacesContext.getCurrentInstance().getExternalContext().redirect("<Seite>");
 
Danke, damit konnte ich es etwas kürzen:

Code:
        FacesContext fc = FacesContext.getCurrentInstance();
        HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
        fc.getExternalContext().redirect(request.getRequestURI());
 

Neue Themen


Zurück
Oben