Programing

h : commandLink 대신 h : outputLink를 언제 사용해야합니까?

crosscheck 2020. 7. 5. 08:05
반응형

h : commandLink 대신 h : outputLink를 언제 사용해야합니까?


언제 <h:outputLink>대신 <h:commandLink>?를 사용해야 합니까?

나는 commandLinkHTTP 게시물을 생성 한다는 것을 이해합니다 . outputLinkHTTP 가져 오기를 생성 것이라고 생각합니다 . 즉, 내가 읽은 대부분의 JSF 튜토리얼 자료commandLink(거의?) 독점적으로 사용합니다.

컨텍스트 : Stack Overflow와 비슷한 사용자 페이지에 대한 헤더 링크를 보여주는 작은 데모 프로젝트를 구현하고 있습니다 ...

더 많은 jquery가 필요합니다

... commandLink아마도 ?faces-redirect=true북마크 가능성을 사용 하는지 또는 outputLink올바른 선택 인지 확실하지 않습니다 .


북마크는 북마크 가능한 GET 요청을 발생시키는 속성에 적절한 URL을 가진 <h:outputLink>완전한 HTML <a>요소를 렌더링합니다 href. 관리 Bean 조치 메소드를 직접 호출 할 수 없습니다.

<h:outputLink value="destination.xhtml">link text</h:outputLink>

(숨겨진) POST 양식을 제출하고 관리 Bean 조치 메소드를 호출 할 수 있는 스크립트 <h:commandLink>로 HTML <a>요소를 렌더링합니다 onclick. 또한 안에 배치해야합니다 <h:form>.

<h:form>
    <h:commandLink value="link text" action="destination" />
</h:form>

POST 후 리디렉션을 트리거하는 ?faces-redirect=true매개 변수 <h:commandLink>( Post-Redirect-Get 패턴에 따라)는 링크를 실제로 클릭 할 때만 대상 페이지의 책갈피 기능을 향상시킵니다 (URL은 더 이상 "뒤에 있지 않습니다"). 하지만 요소 href<a>요소를 완전한 URL로 변경하지는 않습니다 . 여전히 남아 있습니다 #.

<h:form>
    <h:commandLink value="link text" action="destination?faces-redirect=true" />
</h:form>

JSF 2.0부터는 <h:link>URL 대신보기 ID (탐색 사례 결과)를 사용할 수있는 것도 있습니다. <a>에 적절한 URL을 사용하여 HTML 요소를 생성합니다 href.

<h:link value="link text" outcome="destination" />

따라서 SO 사용자 이름 링크와 같이 순수하고 북마크 가능한 페이지 간 탐색을 위해서는 <h:outputLink>또는 을 사용하십시오 <h:link>. 봇은 일반적으로 POST 양식이나 JS 코드를 암호화하지 않기 때문에 SEO에도 더 좋습니다. 또한 페이지를 북마크 할 수 있고 URL이 더 이상 "뒤에"있지 않으므로 UX가 향상됩니다.

당신이 생성자 또는 전처리 작업을 수행 할 수 있습니다 필요한 경우 @PostConstruct(A)의 @RequestScoped또는 @ViewScoped @ManagedBean어떤 문제의 대상 페이지에 연결되어 있습니다. GET 매개 변수를 사용 @ManagedProperty하거나 <f:viewParam>Bean 특성으로 설정할 수 있습니다 .

또한보십시오:


또한 h : link보다 h : commandLink를 사용하는 데 페이지 로딩 (성능)에 시간이 오래 걸린다는 것을 알았습니다. h : link는 h : commandLink에 비해 빠릅니다.

참고 URL : https://stackoverflow.com/questions/4317684/when-should-i-use-houtputlink-instead-of-hcommandlink

반응형