具有以下第一个.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>具有以下shoppingCart.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>
...问题是:
定义为product的托管bean名称
迭代是这样的(shoppingCart.jsf):
h:dataTable value="#{prod}">
因此,这意味着这个迭代无论如何都不会与名为product的bean连接
如何将属性prod.price,prod.weight,prod.count设置为真实的托管bean属性:
product.price,product.weight,product.size发布于 2010-11-30 20:24:55
有两个问题:
prod。你应该这么做。
顺便说一句,managed-property声明只在父bean的认证过程中将一个新的/空的bean设置为属性。这不一定是与您在ui:repeat中相同的 prod实例。您可以直接从faces-config.xml.
#{product} bean。h:dataTable在这里没有任何意义。这里需要h:panelGrid。columns="3">
https://stackoverflow.com/questions/4312085
复制相似问题