<h:outputLink>एक fullworthy एचटीएमएल renders <a>में उचित यूआरएल के साथ तत्व hrefविशेषता है जो एक बुकमार्क योग्य GET अनुरोध सक्रिय करता है। यह सीधे प्रबंधित बीन एक्शन विधि को लागू नहीं कर सकता है।
<h:outputLink value="destination.xhtml">link text</h:outputLink>
<h:commandLink>एक HTML renders <a>एक साथ तत्व onclickस्क्रिप्ट जो एक (छुपा) पोस्ट प्रपत्र सबमिट करता है और एक कामयाब सेम कार्रवाई विधि आह्वान कर सकते हैं। इसे भी अंदर रखना आवश्यक है <h:form>।
<h:form>
<h:commandLink value="link text" action="destination" />
</h:form>
?faces-redirect=trueपर पैरामीटर <h:commandLink>, जो पोस्ट के बाद एक रीडायरेक्ट से चलाता है (के अनुसार उत्तर-पुनर्निर्देशन-जाओ (अब और यूआरएल नहीं होगा "के पीछे एक") जब लिंक वास्तव में क्लिक किया जाता है, केवल लक्ष्य पेज के bookmarkability को बेहतर बनाता है पैटर्न) , लेकिन यह एक पूर्ण URL होने hrefके लिए <a>तत्व का परिवर्तन नहीं करता है । यह अभी भी बना हुआ है #।
<h:form>
<h:commandLink value="link text" action="destination?faces-redirect=true" />
</h:form>
JSF 2.0 के बाद से, <h:link>URL के बजाय व्यू आईडी (नेविगेशन केस परिणाम) ले सकते हैं। यह एक HTML <a>तत्व और साथ ही उचित URL जनरेट करेगा href।
<h:link value="link text" outcome="destination" />
तो, अगर यह शुद्ध और बुकमार्क करने योग्य पेज-टू-पेज नेविगेशन जैसे एसओ उपयोगकर्ता नाम लिंक के लिए है, तो उपयोग करें <h:outputLink>या <h:link>। यह भी एसईओ के लिए बेहतर है क्योंकि बॉट आमतौर पर POST फॉर्म और न ही JS कोड को सिफर नहीं करता है। इसके अलावा, UX में सुधार किया जाएगा क्योंकि अब पृष्ठ बुकमार्क किए जा रहे हैं और URL अब "एक पीछे" नहीं है।
जब आवश्यक हो, आप कंस्ट्रक्टर में प्रीप्रोसेसिंग काम कर सकते हैं या @PostConstructएक @RequestScopedया @ViewScoped @ManagedBeanजो प्रश्न में गंतव्य पृष्ठ से जुड़ा हुआ है। आप जीईटी मापदंडों को सेम गुणों के रूप में सेट करने के लिए उपयोग कर सकते हैं @ManagedPropertyया कर सकते <f:viewParam>हैं।
यह सभी देखें:
UICommandएकUIFormघटक को एक घटक में जाने की आवश्यकता है ।