# Dynamic links in jsf



## program2design (14. Nov 2012)

Hallo!!...ich brauche unbeding eine kleine Hilfestellung 
Und zwar bin ich beim aufbau einer Dynamischen Website,
leider klappt nicht alles so wie gewünscht...Meine Navigation bindet zwar wie gewünscht
die richtigen *.xhtml seiten ein, die Url ändert sich ebenfalls wie gewünscht:

url.de/faces/kontakt.xhtml --> url.de/kontakt

Der einzige Hacken ist, dass die Urls beim start alle die url url.de/# als ziel url beim mouseover anzeigen. sobald ich auf einen linkl klicke (z.B kontakt) zeigen alle links die ziel url "url.de/kontakt"
an, leiten aber auf die richtige seite weiter...
wenn man 
"rechtklick" --> "öffnen in neuem Tab" klickt, öffnet sich ebenfalls die falsche URL







Frage: besteht die Möglichkeit, die richtige Url fix einzutragen (mouseover, und neuer Tab)? 


```
<div class="sidebar">
		<h:form id="form2">
			<f:ajax render=":centerContentPanel" execute="@this">
				<h:commandLink value="kontakt"
					action="#{navigationBean.redirect('kontakt')}">
					<f:param name="test" value="kontakt" />
				</h:commandLink>
				<br></br>
				<h:commandLink value="impressum"
					action="#{navigationBean.redirect('impressum')}">
					<f:param name="test" value="impressum" />
				</h:commandLink>
			</f:ajax>
		</h:form>

	</div>

	<div class="content">

		<h:panelGroup id="centerContentPanel">
			<ui:include src="#{navigationBean.pageName}.xhtml" />
		</h:panelGroup>
	</div>
```

[Java]public class NavigationBean implements Serializable {


	private String pageName = "home";

	public NavigationBean() {
	}

	public String getPageName() throws IOException {
		return pageName;
	}

	public void setPageName(String pageName) throws IOException {
		this.pageName = pageName;
	}

	public void redirect(String pageName) throws IOException {
		FacesContext.getCurrentInstance().getExternalContext().redirect(pageName);
	}
}[/Java]


----------



## freez (14. Nov 2012)

das ist normal wenn du über die actions vom CommandLink oder CommandButton gehst. Der Request geht erst mal auf dieselbe Seite und dann wird in deinem Fall ein Redirect durchgeführt.

Ich würde an deiner Stelle die Navigation über die faces-config.xml regeln und somit brauchst du nur [c]action="kontakt"[/c].

Allerdings verstehe ich gerade nicht, wieso du über commandLink gehst. Kannst du nicht für diese Geschichte einen festen Link nehmen, oder hast du noch mehr damit vor (dynamisch weiterleiten auf unterschiedliche Seiten). So wie sich das darstellt (Kontakt, Impressum) wären feste Links sinnvoller, als über Beans zu gehen.


----------



## program2design (14. Nov 2012)

Hallo freez!
danke für deine Antwort!
Ich habe die dynamischen links mit bean benutzt, da ich in die index datei andere dateien einbinden wollte (und hab das bis jetzt nur über die bean realisieren können..

(also wie ein php include: include($_GET)

<ui:include src="#{navigationB...ich besser vorgehen kann?!
mit festen links?


----------



## program2design (14. Nov 2012)

okay...irgendwie hab ichs es hinbekommen ohne zu wissen wie genau:lol:
hab feste links genommen und die url ändert sich wie gewollt,
inhalte werden richtig dargestellt^^..und das nach mehreren tagen suchen^^

danke!


----------

