<h:outputLink>
Renderuje fullworthy HTML <a>
element z prawidłowego adresu URL w href
atrybucie 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 onclick
skryptu, 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=true
Parametr 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 href
tego <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 @PostConstruct
w @RequestScoped
lub, @ViewScoped
@ManagedBean
który jest dołączony do danej strony docelowej. Możesz użyć @ManagedProperty
lub <f:viewParam>
ustawić parametry GET jako właściwości ziarna.
Zobacz też:
UICommand
komponentu muszą wejść tylkoUIForm
komponenty.