2017-11-18 13 views
0

JSF 구성 요소를 사용하여 동적 탐색 경로를 구현하고 싶습니다. 그래서 내 생각은 내가 GET 요청이 내 서버에 가고오고 있지만, 그것이 내 서블릿에 의해 처리되지 않습니다 참조,이 시점에서 내 서블릿JSF에서 Servlet에 대한 요청 매개 변수를 사용하여 링크를 만드는 방법은 무엇입니까?

<c:forEach items="#{sub_steps}" var="sub_step" varStatus="loop">   
    <h:link value="#{sub_step.name}" action="#{homeManager.redirect()}" ajax="false"> <!-- action="#{homeManager.redirect()}" --> 
     <f:param name="sub_step_id" value="#{sub_step.sub_step_id}" /> 
    </h:link> 
</c:forEach> 

에 매개 변수를 전달하기 위해이 코드 조각을 사용하는 것입니다. 내 관리 빈에서

@ManagedBean(name="homeManager", eager=true) 
@RequestScoped 
public class homeManager extends HttpServlet implements javax.servlet.Servlet 

내 방법 리디렉션 방법 :

는이 같은 요청 범위와 관리 콩이

public String redirect(){ 
     return "shop"; 
    } 

내 web.xml 파일의 추출물을

<servlet> 
    <servlet-name>Shop</servlet-name> 
    <servlet-class>com.kino.front.homeManager</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Shop</servlet-name> 
    <url-pattern>/shop</url-pattern> 
</servlet-mapping> 

마크 업에서 설정 한 매개 변수를 사용하여 URL 매핑 숍으로 리디렉션 할 것으로 예상하여 내 서블릿을 p 데이터를 이동하고 업데이트 된 데이터로 내 뷰를 렌더링합니다.

왜 내 메소드가 호출되지 않습니까? JSF에서 Servlet으로 값을 전달하는 적절한 방법입니까?

+1

서블릿의 조합에 대해 읽은 적이 있고 같은 클래스에 jsf 어노테이션이 어떤 문제에 대한 해결책입니까? 이상한 조합 – Kukeltje

답변

0

솔루션은 함께 h:link 교체입니다

<a href="#{request.contextPath}/shop?sub_step_id=#{sub_step.sub_step_id}"> 
#{sub_step.name} 
</a> 

UPDATE :

또는 더 나은 JSF 구성 요소를 사용하여 (@ Kukeltje의 의견에 고맙습니다) 다른 것들 옆에

<h:outputLink value="#{request.contextPath}/shop?sub_step_id=#{sub_step.sub_step_id}"> 
#{sub_step.name} 
</h:outputLink> 

(h:linkactionajax attri이 (가) 없습니다. 그것은 예를 들어, 참조 끝 있도록 butes) h:link을 추가하기 때문에, 코드가 작동하지 않습니다는 컨텍스트 경로를 얼굴

/YourApp/Faces/shop 대신

/YourApp/shop

전에 체크 아웃 페이지 소스를 내 제안하고 적용 후 원하는 차이를 볼 수 있습니다.

+0

는'h : outputLink'도 해결책이 아니겠습니까? – Kukeltje

+0

@Kukeltje, 맞습니다. 그리고 그것은 더 나은 해결책입니다. –

+0

더 좋지는 않습니다. 다른 경우 (원하는 경우 jsf를 통해 업데이트 할 수 있습니다.) 그렇지 않으면 큰 장점이 없습니다. (확인, 아마도 해제 할 수 있으며 범위 만 볼 수 있습니다) – Kukeltje