JSF JSF 2.0 (Primefaces) commandLinks mit action="mypage.xhtml" ohne die URL im Browser zu ändern

Hootch

Mitglied
Hallo zusammen,

Umgebung:

JSF 2.0 (Primefaces)
Glassfish 3.1.x

HTML:
<p:commandLink action="secondpage.xhtml" ajax="false" immediate="true" value="click_it"/>

Ist:
Beim Klick auf den commandLink wechsel ich auf die secondpage.xhtml. Die Url im Browser ändert sich!

Soll:
Beim Klick auf den commandLink soll ich auf die Seite wechseln, aber die URL im Browser soll sich nicht ändern.

Vermutung:

ajax="false" erzeugt einen regulären HTTP/GET Request und wechselt auf secondpage.xhtml. Kann ich nur mit Navigationsregeln in der faces-config per outcome regeln? Ich möchte die URL im Browser nicht ändern.

Wenn der outcome per Navigationsregeln hinterlegt ist, bleibt ajax="false" immer noch bei Primefaces eingestellt?

Gruß
Hootch
 

mjustin

Aktives Mitglied
Funktioniert hier: wenn man http://localhost:8080/WebApplication1/faces/index.xhtml aufruft, wird der Link (click_it) angezeigt und die URL ändert sich nicht wenn man auf der neuen Seite ankommt

[XML]<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.prime.com.tr/ui" >
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:form >
<p:commandLink action="secondpage.xhtml" ajax="false" immediate="true" value="click_it"/>
</h:form>
</h:body>
</html>[/XML]

NetBeans 7.1, GlassFish 3.1.1, PrimeFaces 2.2.1
 

JimPanse

Bekanntes Mitglied
Ein commandLink führt ein Post-Form submit aus.

Wenn dann musst du

1. Ein Redirect ausführen

Java:
<p:commandLink action="secondpage.xhtml?faces-redirect=true" ajax="false" immediate="true" value="click_it"/>

oder

2. Einen link verwenden
Java:
<h:link outcome="secondpage.xhtml" value="click_it"/>

Grüße
 

Nogothrim

Aktives Mitglied
Anscheinend will er ja genau das nicht, die URL soll sich nicht ändern, also wenn eher faces-redirect=false. Allerdings verstehe ich nicht genau was du vor hast, mit ajax=false hat das eigentlich wenig zu tun, der default für ajax bei PrimeFaces ist true, wenn man nichts angibt, und dann ändert sich die URL auch erst recht nicht, da ja nur ein AJAX Request auf der selben Seite ausgeführt wird.
 

JimPanse

Bekanntes Mitglied
Ok. Dann habe ich das falsch verstanden aber warum sollte man wollen das sich die URL nicht ändert bei einer Seitennavigation???
 

Hootch

Mitglied
Hallo,

wenn ich meine Webseite "http://www.myserver.de" öffne und der Context auf Root mit einer <welcome-file-list> hinterlegt ist. Öffnet sich die JSF Anwendung ohne Darstellung einer xy.xhtml|.do oder sonst irgendwas.

Da ich keine Browserstatistik mit URLs benötige (yx.de/kunden, xy.de/login etc.) möchte ich keinen Wechsel der URL im Browser haben. Ich möchte bei einem ViewRoot Wechsel des FacesContext die aktuelle Root-URL "http://www.myserver.de/") beibehalten.

Fragen wären hierzu:

- Ist es grundsätzlich möglich? (Ich glaube ja)
- Welche Nachteile bringt das mit sich? Scope Lebenszyklen etc. (Request vs. Page Scope Bsp: IceFaces)
- Wie erreiche ich das Verhalten in JSF 2.0 ohne Navigationsregeln in der faces-config?

Weiterer Zusatz:

Wenn ich eine Applikation in URL Bereichen einteilen möchte (xy.de/login; xy.de/register, xy.de/auftraege ...) welche Möglichkeiten nutze ich in JSF? für /login Ordner anlegen und .htaccess mit Redirect Regeln die auf eine index.xhtml verweisen?

Für eure Hilfe und Ideen möchte ich mich im voraus bedanken.

Gruß
Hootch
 
Zuletzt bearbeitet:

JimPanse

Bekanntes Mitglied
Ok. Jetzt verstehe ich es. du willst einen Mechanismus für's url rewriting

Eine Möglichkeit:
PrettyFaces - JSF 2 | Servlet | Java EE | URL Rewrite Filter | Bookmarks | OCPsoft
oder du schreibst dir einen eigenen Filter.

Um einen Bereich abzusichern bieten eigentlich alle Servlet-Container oder App-Server einen Mechanismus an:

Tomcat JAAS:
Tomcat Login Mechanismus @ tutorials.de: Tutorials, Forum & Hilfe

JBoss 5.* (JAAS+WebAuthentication)
Using WebAuthentication in Jboss Eivind’s Weblog

Glassfish + Servlet 3.0 + JAAS
User Authentication and Authorization Using JAAS and Servlet 3.0 Login.

oder
Apache Shiro | Java Security Framework

Merh Info findest du meistens bei dem Anbieter.

Greetz
 

mjustin

Aktives Mitglied
Wenn ich eine Applikation in URL Bereichen einteilen möchte (xy.de/login; xy.de/register, xy.de/auftraege ...) welche Möglichkeiten nutze ich in JSF?

Nach eigenen Angaben - "The leading /url/#{rewriting} solution for Servlet, JSF, and Java EE" - ist PrettyFaces eine Lösung für diese URL Variante.

Wird auch auf StackOverflow bei einschlägigen Fragen gerne als Lösung angegeben.

PrettyFaces:
http://ocpsoft.com/prettyfaces/
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A JSF Suche Beispiel für Primefaces Tree als Navigation Web Tier 3
P JSF (Primefaces) SelectOneMenu Value auf Array wird nicht gesetzt Web Tier 0
M JSP PrimeFaces LayoutUnits <- breite lässt sich nicht erzwingen wenn 'center' Web Tier 0
T JSF Primefaces: selectedvalue von "selectmanyCheckbox" geht verloren Web Tier 0
W JSF Primefaces Selection Mode Web Tier 2
W JSF einfache DataTable PrimeFaces Web Tier 1
FINF_AW_Alex JSF PrimeFaces Dialog verlinken Web Tier 3
W JSF Primefaces Web Tier 5
F JSF Problem mit Primefaces Web Tier 7
F JSF Problem mit Primefaces Web Tier 4
S JQuery und Primefaces (Immer wieder Ärger damit) Web Tier 0
S Primefaces commandButton in einem Dialog/Form/PanelGrid führt actionListener nicht aus Web Tier 4
K JSON in Primefaces Table Web Tier 3
C JSF Zusammenarbeit Primefaces und Tomahawk. Web Tier 2
J JSF Grad der Barrierefreiheit von PrimeFaces, ICEFaces, RichFaces und OpenFaces Web Tier 2
P JSF Primefaces Picklist-Ersatz mit vielen Daten Web Tier 4
S primefaces picklist untereinander anordnen Web Tier 6
T JSF Primefaces beim öffnen eines p:dialog wird eine neue View ManagedBean erstellt Web Tier 2
M onNodeExpand listener in PrimeFaces Web Tier 4
F Primefaces Dialog Web Tier 7
T JSF Primefaces: DataTable Ajax Update - Weiterleitung von anderer Seite Web Tier 11
F Primefaces Datatable => Inplaces Web Tier 3
F Primefaces Datatable Web Tier 6
F JSF Primefaces 3.3 treetable Web Tier 9
F PrimeFaces - selectOneMenu Web Tier 2
F PrimeFaces commandButton und actionListener Web Tier 6
F PrimeFaces p:selectOneMenu funktioniert nicht Web Tier 12
M JSF Dynamische Größe bei Primefaces Komponenten Web Tier 2
P PrimeFaces DataGrid Click "simulieren" Web Tier 5
J JSF2+primefaces? Web Tier 20
S JSF Primefaces Thema, Css wird geladen, nur die Bilder nicht, bzw Resource wird nicht aufgelöst Web Tier 5
F Primefaces Einstieg Web Tier 1
R Primefaces: No Library Found For This Namespace Web Tier 4
M Primefaces COmmandBUtton Web Tier 8
D JSF Ajax mit Facelets (PrimeFaces) Web Tier 4
Z Primefaces sieht grausam aus Web Tier 1
A [PrimeFaces] dataTable mit paginator Probleme Web Tier 2
Z PrimeFaces (/ JSF) Konfigurationsproblem Web Tier 8
S [JSF] Menü mit CommandLinks Web Tier 2

Ähnliche Java Themen

Neue Themen


Oben