2011-10-15 27 views
0

在我ManagedBean,我有以下特性:JSF 2.0:爲什麼我的selectManyListbox值無效

@ManagedBean 
@RequestScoped 
public class MrBean { 
    ... 
    private long[] IDs; 
    private List<Item> items; 
    ... 
} 

在我.xhtml文件,我有以下選擇多箱:

<h:selectManyListbox label="abc" 
    id="abc" size="5" value="#{MrBean.IDs}"> 
    <f:selectItems value="#{MrBean.items}" var="i" 
     itemLabel="#{i.name}" itemValue="#{i.id}" /> 
</h:selectManyListbox> 
<h:message styleClass="errorMsg" for="abc" /> 

我的物品ID是長號碼。因此,我預計我會得到一個選擇的ID列表。但是,當我提交表單時,abc: Validation Error: Value is not valid出現在我的列表框的消息部分中。

有人可以告訴我在這裏做錯了什麼嗎?

最好的問候, 詹姆斯陳

+0

你可以發佈完整的stacktrace嗎? –

回答

1

時所選擇的項目(S)處理表單提交過程中不匹配任何可用的物品,你會得到這個驗證錯誤。

由於您的bean是請求作用域,因此您需要確保在bean的(後)構造函數中創建與在顯示錶單時完全相同的List<Item>。如果這是不可能的,因爲列表的內容取決於先前的操作,那麼您需要將bean放入視圖範圍中。

+0

非常感謝!這正是我做錯的地方:D –