2014-09-20 2 views
0

jsf 2.2 및 primefaces를 사용하여 웹 응용 프로그램을 개발하고 있습니다. 나는 사용자가 선택한 다른 옵션에 따라 원하는 페이지 또는 다른 페이지로 이동합니다. 사용자가 콘솔 PS4를 선택하고 도시 런던이 page1.xhtml로 이동하고 콘솔 xbox를 선택하고 도시 파리가 page2.xhtml로 이동하면 어떻게 할 수 있습니까?JSF 및 Primefaces 조건부 탐색

<h:form> 
    <h3 style="margin-top:0">Basic</h3> 
    <h:panelGrid columns="2" style="margin-bottom:10px" cellpadding="5"> 
     <p:outputLabel for="console" value="Console:" /> 
     <p:selectOneRadio id="console" value="#{radioView.console}"> 
      <f:selectItem itemLabel="Xbox One" itemValue="Xbox One" /> 
      <f:selectItem itemLabel="PS4" itemValue="PS+" /> 
      <f:selectItem itemLabel="Wii U" itemValue="Wii U" /> 
     </p:selectOneRadio> 
    </h:panelGrid> 

    <h3 style="margin-top:0">Basic</h3> 
    <h:panelGrid columns="2" style="margin-bottom:10px" cellpadding="5"> 
     <p:outputLabel for="city" value="city:" /> 
     <p:selectOneRadio id="city" value="#{radioView.city}"> 
      <f:selectItem itemLabel="London" itemValue="london" /> 
      <f:selectItem itemLabel="Paris" itemValue="paris" /> 
      <f:selectItem itemLabel="NY" itemValue=ny" /> 
     </p:selectOneRadio> 
    </h:panelGrid> 

답변

0

당신은 (예를 들어 <h:form> 내부)을 actioncommandButton을 만들 수 있습니다 여기에

는 코드입니다. 이 작업에서 consolecity 속성의 값에 따라 "page1.xhtml"또는 "page2.xhtml"중 하나를 반환합니다.

처럼 (안된) :

<p:commandButton value="Go!" action="#{radioView.gotoNextPage}" /> 

public String gotoNextPage() { 
    if ("PS4".equals(console) && "london".equals(city)) // It has value "PS+" but I expect it's an error 
     return "page1.xhtml"; 
    else if ("Xbox One".equals(console) && "paris".equals(city)) 
     return "page2.xhtml"; 
    else if ........ 
} 
+0

감사합니다,하지만 나던 작품. 나는 잘못된 것을하고있다. 관리 빈 옵션에서 공용 문자열처럼 선언해야합니다. 맞습니까? – william