2

私のJSFページはこのようなものです。その<f:ajax>部分は機能するようになりました。

<h:selectOneListbox value="#{category.categoryId}">
    <f:selectItems value="#{category.allSubCategories}" var="c" itemLabel="#{c.title}" itemValue="#{c.categoryId}" />
    <f:ajax execute="@form" render="projects" />
</h:selectOneListbox>

<h:panelGroup id="projects">
    <ul>
        <ui:repeat items="#{category.allItems}" var="o" id="itemTable">
            <li><h:graphicImage value="#{o.imageUrl}" id="itemImage" /></li>
            <li><h:outputText value="#{o.title}" /></li>
            <li><label>Price: $ </label><h:outputText value="#{o.price}" /></li>
        </ui:repeat>
    </ul>       
</h:panelGroup>

私の豆は:

@ManagedBean(name = "category")
@SessionScoped
public class CategoryServiceBean extends BaseService implements Serializable {

    private static final long serialVersionUID = -12082902292711980L;    
    private Integer categoryId;
    private Integer parentCategoryId;
    private Integer locationId;

    @ManagedProperty(value="#{categorySupport}")
    private CategorySupport categorySupport;

    public List<RestCategory> getAllSubCategories() {
        return getCategorySupport().getCategoriesByParent(locationId, parentCategoryId);            
    }

    public List<RestItem> getAllItems() {
        return response = getCategorySupport().getCategoryItems( locationId, categoryId);               
    }

    // ...
}

私の問題は、<f:ajax execute="@form" render="projects" />が に値を入力しないこと<h:panelGroup id="projects">です。これはどのように発生し、どうすれば解決できますか? <h:dataTable>の代わりに使用すると<ui:repeat>、正常に動作します。

4

1 に答える 1

1
<ui:repeat items="#{category.allItems}" var="o" id="itemTable">

items属性が に存在しませ<ui:repeat>ん。と混同しているようです<c:forEach>。属性を使用しvalueます。

<ui:repeat value="#{category.allItems}" var="o" id="itemTable">
于 2012-09-19T13:26:19.733 に答える