<h:outputLink>Renderuje fullworthy HTML <a>element z prawidłowego adresu URL w hrefatrybucie który wystrzeliwuje jako zakładki żądanie GET. Nie może bezpośrednio wywołać metody akcji zarządzanego komponentu bean.
<h:outputLink value="destination.xhtml">link text</h:outputLink>
<h:commandLink>Renderuje HTML <a>elementu z onclickskryptu, który złoży formularz (ukryty) POST i może powołać zarządzanej metody działania fasoli. Wymagane jest również umieszczenie go wewnątrz <h:form>.
<h:form>
<h:commandLink value="link text" action="destination" />
</h:form>
?faces-redirect=trueParametr sprawie <h:commandLink>, która wyzwala przekierowanie po POST (zgodnie z Post-Redirect-Get wzorzec), tylko poprawia bookmarkability strony docelowej, gdy połączenie jest faktycznie kliknął (URL nie będzie „jeden za” już) , ale to nie zmienia hreftego <a>elementu być fullworthy URL. Nadal pozostaje #.
<h:form>
<h:commandLink value="link text" action="destination?faces-redirect=true" />
</h:form>
Od JSF 2.0 istnieje również, <h:link>który może pobrać identyfikator widoku (wynik przypadku nawigacji) zamiast adresu URL. Wygeneruje również <a>element HTML z odpowiednim adresem URL w formacie href.
<h:link value="link text" outcome="destination" />
Tak więc, jeśli jest to czysta i godna uwagi nawigacja między stronami, jak link do nazwy użytkownika SO, użyj <h:outputLink>lub <h:link>. Jest to również lepsze dla SEO, ponieważ boty zwykle nie szyfrują formularzy POST ani kodu JS. Ponadto poprawi się UX, ponieważ strony są teraz objęte zakładkami, a adres URL nie jest już „jeden za”.
W razie potrzeby możesz wykonać zadanie przetwarzania wstępnego w konstruktorze lub @PostConstructw @RequestScopedlub, @ViewScoped @ManagedBeanktóry jest dołączony do danej strony docelowej. Możesz użyć @ManagedPropertylub <f:viewParam>ustawić parametry GET jako właściwości ziarna.
Zobacz też:
UICommandkomponentu muszą wejść tylkoUIFormkomponenty.