1

我似乎找不到 Seam3 中的 @DataModel 和 @DataModelSelection 在哪里(与 Seam2 相对)。它们是在什么 Seam 模块中定义的?如果他们的名字已经改变,现在是什么?

4

3 回答 3

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;
    }
}
于 2011-08-15T07:01:35.633 回答
2

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

于 2011-08-14T12:01:39.473 回答
0

我使用richfaces,您可以使用以下构造:

<a:commandLink value="Delete" action="#{bean.delete}">
  <f:setPropertyActionListener value="#{item}" target="#{bean.selectedItem}" />
</a:commandLink>
于 2012-01-03T15:54:33.557 回答