2011-08-13 67 views
1

我似乎無法找到Seam3中的@DataModel和@DataModelSelection在哪裏(而不是Seam2)。他們定義了哪些Seam模塊?如果他們的名字被改變了,那麼它現在是什麼?Seam3中的DataModel和DataModelSelection

回答

4

假設你正在使用JSF2.0,你可以 '注入' 選擇行動方式是這樣的:

<h:dataTable value="#{itemManager.itemList}" var="item"> 
    <h:column> 
     <f:facet name="header">Item Id</f:facet> 
     #{item.id} 
    </h:column> 
    <h:column> 
     <f:facet name="header">Item Name</f:facet> 
     #{item.name} 
    </h:column> 
    <h:column> 
     <f:facet name="header">Action</f:facet> 
     <h:commandLink value="Delete" action="#{itemManager.delete(item)}" /> 
    </h:column> 
</h:dataTable> 

和相應的託管bean:

@ManagedBean(name="itemManager") 
@SessionScoped 
public class ItemManager { 
    ArrayList<Item> itemList; 

    public ArrayList<Item> getItemList() { 
     if (itemList == null) { 
      itemList = ... // build item list 
     } 
     return itemList; 
    } 

    public String delete(Item item) { 
     itemList.remove(item); 
     return null; 
    } 
} 
+0

+1。在沒有JBoss擴展的情況下,JSF2 EL中允許使用方法參數。 –

2

@DataModel和@DataModelSelection功能在Seam3中不可用。

+0

你碰巧知道Seam3中是否有相應的功能?人們在遷移時使用了什麼樣的替代方法?謝謝! – egaga

0

我你使用RichFaces,你可以使用以下結構:

<a:commandLink value="Delete" action="#{bean.delete}"> 
    <f:setPropertyActionListener value="#{item}" target="#{bean.selectedItem}" /> 
</a:commandLink>