2012-10-21 5 views
0

내 사용자 지정 네비게이션 핸들러의 핸들 네비게이션 handleNavigation(final FacesContext context, final String fromAction, final String outcome)이 내 h : link 구성 요소에 의해 호출되지 않습니까?사용자 지정 네비게이션 핸들러 - handleNavigation이 h : link에 의해 호출되지 않음

<h:link value="text" outcome="./target.xhtml?faces-redirect=true"> 
    <f:param name="param" value="#{var.prop}"/> 
</h:link> 

명령 단추를 사용하여 호출합니다.

답변

0

<h:link>은 대상 URL이 확인 된 후 POST 요청을 보내지 않습니다. 대신 <h:link>은 속성에 이미 목표 URL이있는 GET 요청을 보내는 데 사용되는 HTML <a> 요소를 생성합니다. 이 URL은 ViewHandler#getBookmarkableURL()에 의해 얻어지고, 차례로 ViewHandler#getActionURL()에 위임됩니다.

Mojarra를 사용 중이라면 OutcomeTargetLinkRenderer#renderAsActive()의 모든 작업을 볼 수 있습니다.

ViewHandlerWrapper을 확장하여 <application><view-handler>으로 등록하면 쉽게 사용자 정의 ViewHandler을 제공 할 수 있습니다.

+0

흠, 설명해 주셔서 감사합니다. 그러나 이것은 내 탐색 기록을 저장하고 URL의 검색어를 사용하여 대상 사이트로 리디렉션하려는 내 경우에는 쓸모없는 것처럼 보입니다. 나는 지금 당장이 문제에 대한 해결책을 찾지 못한다. 너는 어떤 생각이있어? – djmj

+0

클릭시 JSF 이외의 Ajax 요청을 사용자 정의 서블릿으로 보내거나 GET 요청이 실행될 때 호출되는 사용자 정의 서블릿 필터 (또는'ViewHandler # createView()'의 후크)를 작성하십시오. – BalusC

+0

나는 완전히 다른 접근법을 취한다고 생각한다. 왜냐하면 점점 더 많은 문제가 발생하기 때문에 해킹이 필요한 것이다. http://stackoverflow.com/questions/12045442/jsf-custom-navigationhandler-outcome-values-invalid/12047651#comment17656842_12047651 – djmj

관련 문제