2010-12-07 14 views
1

私は値 "名前"としてラベルを持つリストボックスを表示する必要があります&私はh:selectOneListboxを使用しています。h:selectOneListboxにラベルを設定するにはどうすればいいですか?

私のコードは次のとおりです。

<h:selectOneListbox id="select" value"#{trial.trials}" size="1" title="Select Item..."> 
<f:selectItems value="#{trial.trials}/> 
</h:selectOneListbox> 

マイトライアルBeanは次のとおりです。

public class trial{ 

List<trialDataBean> trials = new ArrayList<trialDataBean>(); 


public trial(){ 
trialDatBean tdb = new trialDataBean(1,"aatmiya"); 
trials.add(tdb); 
} 

public List<trialDataBean> getTrials(){ 
return trials; 
} 

public void setTrials() { 
this.trials = trials; 
} 

} 

trialDataBeanは、プロパティ「名前」私はリストボックスのラベルとして、それを設定したい&を持っています。 どうすればよいですか?

答えて

2

ファイル、あなたのList<Trial>に基づいList<SelectItem>を作成する必要があります。 SelectItemのコンストラクタは、第1引数としてオプション値をとり、第2引数としてオプションラベルを取ります。あなたが唯一のTrialString間の変換をカスタムConverterを供給する必要がある

<h:selectOneListbox value="#{bean.selectedTrial}" converter="trialConverter"> 
    <f:selectItems value="#{bean.selectTrials}" /> 
</h:selectOneListbox> 

次のように

public class Bean { 

    private Trial selectedTrial; 
    private List<Trial> trials; 
    private List<SelectItem> selectTrials; 

    public Bean() { 
     trials = loadItSomehow(); 
     selectTrials = new ArrayList<SelectItem>(); 
     for (Trial trial : trials) { 
      selectTrials.add(new SelectItem(trial, trial.getName())); 
     } 
    } 

    // ... 
} 

次に、あなたがビューでそれを使用することができます。詳細はthis articleにあります。 JSF 2.xで


、あなたはList<SelectItem>を省略し、代わりにf:selectItemsに新しいvar属性を使用することができます。

<h:selectOneListbox value="#{bean.selectedTrial}" converter="trialConverter"> 
    <f:selectItems value="#{bean.trials}" var="trial" 
     itemValue="#{trial}" itemLabel="#{trial.name}" /> 
</h:selectOneListbox> 
+1

ただJSF2にJSF1から切り替えるとhに新しいvar属性を愛する:selectOneListbox 。 – scottyab

+0

アイテムのダブルクリックを処理できるかどうか、どうすればよいですか? –

+0

私はJSF 2のために(Bal​​usC)のやっていることに従っていますが、クロムの要素を調べると、それぞれのオプションのリスト全体がその値になります。 私のコードは次のとおりです。 Java private ConnectedUser connection_to_remove; プライベートリスト connected_users; フォームの送信時に、 'connected_users'リストから' connection_to_remove'を削除します。 JSP: edhedges

0

このように使用できます。私は<ice:selectOneMenu>タグを使用していて、それがうまくいくかどうかは分かりません。

<ice:selectOneListbox 
    id="paymnent" rows="10" tabindex="4" 
    value="#{paymentVoucherReportAction.reportType}" 
    style="width: 200px;height: 20px;"> 
    <f:selectItems id="AutoCmpTasdfasdfasdxtItms11" 
     value="#{paymentVoucherReportAction.lstKeyValueData}" /> 
</ice:selectOneListbox> 

//ビーン(アクション)JSF 1.xでは

private List<SelectItem> lstKeyValueData = new ArrayList<SelectItem>(); // getter + setter 

    private String reportType; // getter + setter 

    // put this in your init method 

    List< SelectItem> list = new ArrayList< SelectItem>(); 

    list.add(new SelectItem("PDF Format","PDF Format")); 

    list.add(new SelectItem("XLS Format","XLS Format")); 

    setLstKeyValueData(list); 

    // print this where you want 

    System.out.println(reportType); 
関連する問題