9 Stimmen

Wie erstellt man benutzerfreundliche und seo-freundliche URLs in jsf?

Ich habe zum Beispiel die Klasse Article mit den Methoden getTitle () y getContent () .

Ich habe auch ArticlesService mit der Methode getAllArticles () . Wie erstellt man eine Liste von Links mit aussagekräftigen Namen (gebildet mit #{article.title} )? Zum Beispiel:

http://mysiteaddress.com/article/first-article-title
http://mysiteaddress.com/article/how-to-make-links-in-jsf

oder etwas Ähnliches.

Ich kann Links mit allen erforderlichen Funktionen erstellen mit <h:commandLink> , aber ich weiß nicht, wie ich ein schönes 'href' dafür erstellen kann: es hat immer href '#'.

Ich kann schöne Links erstellen mit <h:outputLink> aber ich weiß nicht, wie ich sie um die notwendigen Funktionen erweitern kann.


In jsp habe ich meinen eigenen Front-Controller erstellt, der die URLs von Anfragen parst und dann auf die entsprechende jsp-Seite umleitet.

Wie erreicht man die gleiche Funktionalität in JSF?

13voto

BalusC Punkte 1034465

Wenn es sich um eine Verbesserung einer bestehenden Anwendung handelt, benötigen Sie grundsätzlich eine Filter das "schmutzige" und "freundliche" URLs erkennt. Wenn es eine "schmutzige" URL entdeckt, dann sollte es umleiten die Anfrage an eine "freundliche" URL durch HttpServletResponse#sendRedirect() . Wenn es eine "freundliche" URL erkennt, sollte es weiter die Anfrage an die "schmutzige" URL durch RequestDispatcher#forward() . Ein Beispiel findet sich in dieser verwandten Frage: Wie kann man einen Servlet-Filter in Java verwenden, um eine eingehende Servlet-Anfrage-URL zu ändern?

Darüber hinaus benötigen Sie auch eine benutzerdefinierte ViewHandler um die gewünschte "freundliche" URL für JSF zu erzeugen <h:form> , <h:link> , usw. Ein Beispiel ist hier zu finden: Dynamisches Verzeichnis in Java EE-Webanwendung .

Wenn es sich um eine neue Anwendung oder eine Anwendung handelt, die offen für Änderungen ist, könnten Sie eine der vorhandenen hübschen URL-Bibliotheken in Betracht ziehen, anstatt das Rad neu zu erfinden:

  • PrettyFaces die eine vollständige URL-Rewrite-Lösung ist. Sie erfordert eine zusätzliche XML-Konfigurationsdatei pretty-config.xml . Diese Bibliothek ist nützlich, wenn Sie URLs vollständig ändern und/oder Umleitungen von alten zu neuen URLs konfigurieren möchten.
  • FacesViews de OmniFaces Bibliothek, die bestehende URLs einfach um eine einzige Erweiterung web.xml Kontext-Param. Es unterstützt auch "MultiViews", wobei Pfadparameter deklarativ in verwaltete Beans injiziert werden können. Z.B.. /foo/bar/baz kann zeigen auf /foo.xhtml und die Werte bar y baz kann injiziert werden durch @Param(pathIndex) .

Außerdem gibt es das experimentelle PrettyUrlPhaseListener de Mojarra-Waage Bibliothek, aber es ist eine alte Bibliothek und PrettyFaces basiert größtenteils darauf, so dass es den Aufwand nicht wert ist.

8voto

cetnar Punkte 9219

Haben Sie versucht PrettyFaces ?

Einfach, effektiv, Lesezeichen, JSF

PrettyFaces ist eine OpenSource-Erweiterung für JSF1.2 und JSF2.0, die die Erstellung von Bookmark-fähigen, hübschen URLs ermöglicht. PrettyFaces löst dieses Problem auf elegante Weise und bietet Funktionen wie: Seitenladeaktionen, nahtlose Integration mit der Faces-Navigation, dynamische View-ID-Zuweisung, verwaltetes Parameter-Parsing und konfigurationsfreie Kompatibilität mit anderen JSF-Frameworks.

SEO und Konsistenz:

Jedes Unternehmen weiß, wie wichtig die Suchmaschinenoptimierung für den Verkauf sein kann. PrettyFaces ermöglicht SEO-freundliche URLs und eine verbesserte Kundenerfahrung. Geben Sie Ihrer Website ein einheitliches, gut verständliches Erscheinungsbild, von der Adressleiste bis zur Kaufschaltfläche.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X