In den Eigenschaften festlegen, jsf-managed-bean
Haben nach der ersten .jsf:
<ui:repeat var="prod" value="#{showProducts.decoys}">
<h:form>
{prod.price}
{prod.weight}
{prod.size} >
<h:commandButton value="Buy" action="shoppingCart"/>
</h:form>
</ui:repeat>
Habe folgenden Warenkorb.jsf:
<h:form>
<h:dataTable value="#{prod}">
<h:column>
#{prod.name}<br/>
</h:column>
<h:column>
#{prod.price}<br/>
</h:column>
<h:column>
<h:inputText value="#{prod.count}" size="3"/>
</h:column>
</h:dataTable>
<h:inputText value="#{order.phone}"/><br/>
<h:inputText value="#{order.mail}"><br/>
<h:inputText value="#{order.city}"/><br/>
<h:commandButton value="Order" action="#{showProducts.persistOrder}">
</h:form>
Faces-config:
<managed-bean>
<managed-bean-name>showProducts</managed-bean-name>
<managed-bean-class>main.ShowProducts</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
...
<managed-property>
<property-name>product</property-name>
<value>#{product}</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>product</managed-bean-name>
<managed-bean-class>main.Product</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
...
Das problem:
managed-bean-name definiert als product
iteration geht auf diese Weise(Warenkorb.jsf):
h:dataTable value="#{prod}">
so bedeutet es, dass diese iteration ist nicht verbunden mit der bean mit dem Namen product
jedenfalls
Wie Eigenschaften gesetzt prod.price,prod.weight,prod.count
zu echten managed-bean-Eigenschaften:
product.price,product.weight,product.size
InformationsquelleAutor sergionni | 2010-11-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es zwei Probleme:
Du nicht einen bestimmten
prod
in der session-scoped bean. Sie sollten dies tun.Durch die Art und Weise, die
managed-property
- Deklaration legt nur eine neue/leere bean-Eigenschaft während der Eltern-bean die ceration. Dies ist nicht unbedingt die gleichenprod
Instanz, wie Sie in derui:repeat
. Sie können einfach entfernen Sie die#{product}
bean von Ihremfaces-config.xml
.Den
h:dataTable
macht keinen Sinn hier. Sie müssenh:panelGrid
hier.InformationsquelleAutor BalusC