2011-06-22 12 views
0

達成するためのシナリオがありますが、それを行う方法はわかりません(素数を使用しています) シナリオ: 私は、ユーザがオプションを選択したときに のいずれかを選択できるオプションを含むselectOneMenuを持っており、selectOneMenuの下に "form"または "Sub-page"が表示され、ユーザがそれを記入する必要があります。 "サブページ" の変化選びだしオプションに従って条件内の「サブページ」の表示と更新方法(プライムフェイスを使用)

例:オプション1 --->サブページ1

オプション2 --->サブページ2など。

JSF

<h:selectOneMenu style="width:200px" immediate="true" value="#{ToolsKPI.myChoice}" onchange="submit()" valueChangeListener="#{BeanTest.selectChangeHandler}" required="true" > 
      <f:selectItems value="#{ToolsKPI.getMyListKPI()}" /> 
      </h:selectOneMenu> 

     <p:panel rendered="#{BeanTest.showPanelBool}" > 
      <h1>KPI1</h1> 
      <br></br> 
      <h:inputText value="test1" /> 
     </p:panel> 
       <p:panel rendered="#{BeanTest.showPanelBool1}" > 
        <br></br> 
        <h1>KPI2</h1> 
       <h:inputText value="test2" /> 
      <h:inputText value="test3" /> 
     </p:panel> 

マイビーン

public class BeanTest implements java.io.Serializable { 

private String myChoice; 
private boolean showPanelBool; 
private boolean showPanelBool1; 


    public BeanTest() { 
} 

//getters ande setters 


public void selectChangeHandler(ValueChangeEvent event){ 

myChoice = (String) event.getNewValue(); // Must however be the exact page URL. E.g. "contact.jsf". 
    FacesContext.getCurrentInstance().getExternalContext(); 

if(myChoice.equals("Number Of Closed issues")){ 
this.showPanelBool = true; 
} else{ 
this.showPanelBool = false; 
this.showPanelBool1 = true; 
} 
FacesContext.getCurrentInstance().renderResponse(); 
} 

}  

答えて

0

あなたは実際にコードのいくつかの類似点を掲示すべきです。あなたが探しているのは、 "p:outputPanel"コンポーネントかこれに類するものです。

http://www.primefaces.org/showcase/ui/outputPanel.jsf

あなたは擬似コードのため申し訳ありません

public void onSelectItem(ValueChangeEvent evt) 
{ 
    if("someValue".equals(evt.getNewValue()) 
    showPageOne = true;//boolean 
    else 
    showPageTwo = true;//boolean 
} 

//JSF 
<h:form id="myForm"> 
    <h:selectOneMenu valueChangeListener="#{myBean.onSelectItem}" update="myForm"> 
    <f:selectItems value="items"> 
    </h:selectOneMenu> 
    <p:outputPanel rendered="#{myBean.showPageOne}"> 
    hi I'm page one 
    </p:outputPanel> 

    <p:outputPanel rendered="#{myBean.showPageTwo}"> 
    hi I'm page two 
    </p:outputPanel> 
</h:form> 

に似valueChangeListenerので何かを行うことができ、Primefaces上の例は本当にここのお手伝いをします。 OutputPanelは私のベーコンを頻繁に保存しました。更新ターゲットを指定する必要がありますが、この例は本当にクリアで簡単に実行できます。それで遊びます。

(またPrimefacesあなたはおそらく彼らのコンポーネントスイートに非常にご満足いただけることでしょう幻想的です)

+0

こんにちは、返信いただきありがとうございます。私は、GUIのスケッチを追加しようとしましたが、私は、私ドンbeacauseすることはできません私はそれをすることができます:(、これは私も私の英語はあまり良いではない:)クリアすることができなかった理由を知っていないコードbeacauseを追加していない。私はあなたの答えを読んだが、私が結果として欲しいものではない、私はフォームが必要です(ユーザーによって記入され、それは選択によって変わります)。コンボボックス(SelectOneMenu)。 – rym

+0

こんにちは私は私の問題を解決した、私はそれがsombody他の人を助けることを望む投稿を更新しました:) – rym

関連する問題