2013-11-15 1 views
0

Prettyface가 faces-config.xml 내에서 to-view-id (내선)의 확장없는 URL을 만들도록 유지하여 그 끝에 .xhtml을 추가하지 못하게하려면 어떻게해야합니까? ?faces-config.xml 내에서 prettyfaces 확장 가능 URL을 "to-view-Id"로 유지

예 : 탐색 케이스를 정의하는 동안 to-view-id/topics/54233으로 정의하지만 faces-config는 나를 확실히 차단하려는 /topics/54233.xhtml으로 리디렉션합니다. 어떻게해야합니까?

Prettyfaces 탐색 기술이 있지만 Prettyfaces와 함께 탐색 할 수 없다는 것을 알고 있습니다 (다른보기 ID를 기반으로 한 결과에 대해 다른 탐색 케이스를 만들 수 없기 때문에). faces-config.xml에 의해 제공됩니다.) 그래서 나는 faces-config.xml을 사용하여 그 일을 계속하려고 노력하고 있습니다.

답변

2

먼저 faces 네비게이션 시스템의 아키텍처로 인해 faces-config.xml에서 "prettyfaces URLs"을 사용할 수 없습니다. (faces-config.xml이 탐색을 위해 처리 될 때까지는 다른 모든 확장 프로그램이 작동 할 수있는 기회를 포기했습니다.)

즉, 탐색 케이스의 to-view-id에 원래 JSF view-id URL을 사용해야합니다. 이어야합니다. PrettyFaces가 아웃 바운드 URL을 수정하고 예쁜 양식으로 다시 작성하려면 <redirect/>을 사용해야합니다. 이

<navigation-case> 
    <from-outcome>from-outcome</from-outcome> 
    <to-view-id>/topics/view.xhtml</to-view-id> 
    <redirect> 
     <view-param> 
      <name>id</name> 
      <value>54233</value> 
     </view-param> 
    </redirect> 
</navigation-case> 

같은

뭔가 당신이 당신의 pretty-config.xml에 적절한 매핑이있는 경우, PrettyFaces이 성공적인 리디렉션가 발생합니다 함께 넣어 모든 /topics/54233

<url-mapping> 
    <pattern value="/topics/#{id}" /> 
    <view-id value="/topics/view.xhtml" /> 
</url-mapping> 

에 리디렉션을 발행합니다. 그러나 일반적으로 faces-config.xml에서 작업을 수행하려는 경우 PrettyFaces가 존재하지 않는 것처럼 가장해야하며 <redirect/>을 사용해야합니다.

+0

링컨. 매우 유용한 답변! 이 모든 것보다는 무엇을 생각하니, 내비게이션을 예쁜면으로 옮기면 더 멋지겠습니까? 그것이 faces-config 네비게이션처럼 작동하려면 Prettyfaces에 다른 nav 케이스를 만들기 위해 다른 'from-view-id'에 대해 다른 결과를 사용해야합니까? –

+0

필자는 PrettyFaces 탐색이 더 멋지다고 생각하는 경향이 있지만 목표에 따라 달라 지므로 맹목적으로 추천하지 않습니다. PrettyFaces를 URL 재 작성 라이브러리로만 사용하려면 다른 라이브러리를 사용하려는 경우 탐색 기능 (일명 'return'pretty : mappingId ";)을 사용하면 PrettyFaces를 교체하기가 더 어려워집니다. 당신이 원했을 것이지만 그것을 고려해야 할 것입니다 또한 원래의 질문에 정확히 답하는 게시물을 올바르게 작성 했습니까? – Lincoln

+0

예, 절대적으로 대답합니다 : 수락 됨 :) –