首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将属性设置为jsf managed-bean

将属性设置为jsf managed-bean
EN

Stack Overflow用户
提问于 2010-11-30 17:13:58
回答 1查看 10.6K关注 0票数 2

具有以下第一个.jsf:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
    <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属性:

代码语言:javascript
复制
product.price,product.weight,product.size
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-30 20:24:55

有两个问题:

  1. 您没有在会话作用域bean中设置特定的prod。你应该这么做。

顺便说一句,managed-property声明只在父bean的认证过程中将一个新的/空的bean设置为属性。这不一定是与您在ui:repeat中相同的 prod实例。您可以直接从faces-config.xml.

  • The中删除#{product} bean。h:dataTable在这里没有任何意义。这里需要h:panelGrid

columns="3">

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4312085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档