2011-11-27 154 views
0

有沒有在視圖如何在單個後臺bean屬性中收集多個相關屬性?

<h:form> 
    <h:selectOneMenu value="#{hotelsController.room1ad}"> 
     <f:selectItem itemLabel="1" itemValue="1"/> 
     <f:selectItem itemLabel="2" itemValue="2"/> 
     <f:selectItem itemLabel="3" itemValue="3"/> 
    </h:selectOneMenu> 
    <h:selectOneMenu value="#{hotelsController.room1ch}"> 
     <f:selectItem itemLabel="1" itemValue="1"/> 
     <f:selectItem itemLabel="2" itemValue="2"/> 
     <f:selectItem itemLabel="3" itemValue="3"/> 
    </h:selectOneMenu> 
    <h:selectOneMenu value="#{hotelsController.room1ch1}"> 
     <f:selectItem itemLabel="1" itemValue="1"/> 
     <f:selectItem itemLabel="2" itemValue="2"/> 
     <f:selectItem itemLabel="3" itemValue="3"/> 
</h:selectOneMenu> 
...... 
</h:form> 

這看起來並不那麼糟糕後臺bean

private int room1ad 
private int room1ch 
private int room1ch1 
private int room1ch2 
private int room1ch3 
private int room1ch4 
// getters & setters 

和它來取代這種方式,但我有10間客房在一個支持bean。

我支持bean

//BB 
private Room room1 

和視圖基本相同想過這樣的事情,但是經過submition 所以它的工作方式具有以BB每個房間6個整數,而不是它會創建對象我只有x室內類和XHTML形式將直接POJO而不是單獨訪問每個int

回答

2

EL支持對POJO的名單和屬性,所以你可以很容易地使用它:

public List<Room> getRooms(); 

和XHTML:

<ui:repeat value="#{hotelsController.rooms}" var="room"> 
    <h:selectOneMenu value="#{room.ad}"> 
     <f:selectItem itemLabel="1" itemValue="1"/> 
     <f:selectItem itemLabel="2" itemValue="2"/> 
     <f:selectItem itemLabel="3" itemValue="3"/> 
    </h:selectOneMenu> 
    . 
    . 
</ui:repeat> 
+0

是的,但我需要前右定義房間號碼是多少?但我有一個selectOne來定義房間數量。但我會去嘗試你的溶劑。 – Mazmart

+0

@Mazmart很難從xhtml中猜出您的業務需求是什麼,所以也許我的代碼片段並不完美。我的意圖是更多地展示可能的選擇。 – mrembisz

+0

不,它完美的作品:)謝謝。最後一件事是我想寫'''' – Mazmart