【问题标题】:javax.el.PropertyNotFoundException: The class doesn't have propertyjavax.el.PropertyNotFoundException:该类没有属性
【发布时间】:2012-08-21 19:18:54
【问题描述】:

我无法呈现肯定在数据库中的数据。我所有的 DAO 方法都工作并经过测试。也许这并不重要,但无论如何:我正在使用 Primefaces、Java ee 6、glassfish 3.1。

这里是错误:/edit.xhtml @59,45 value="#{b.orderNum}": The class 'com.boatmanagement.domain.BoatOrder' does not have the property 'orderNum'.

我的域类。

@Entity
@Table(name="BOAT_ORDR_TB")
public class BoatOrder implements Serializable
{
    @Id
    @GeneratedValue
    @Column(name="ORDER_PK")
    private int orderId;

    @Column(name="ORDER_NUM")
    private String orderNum;

    @Temporal(TemporalType.DATE) 
    @Column(name="ORDER_DATE")
    private Date orderDate;

    public int getBoatOrderId() {
        return orderId;
    }
    public void setBoatOrderId(int orderId) {
        this.orderId = orderId;
    }
    public String getBoatOrderNum() {
        return orderNum;
    }
    public void setBoatOrderNum(String orderNum) {
        this.orderNum = orderNum;
    }
    public Date getBoatOrderDate() {
        return orderDate;
    }
    public void setBoatOrderDate(Date orderDate) {
        this.orderDate = orderDate;
    }
}

这是我的 JSF 页面的一部分。

        <h:form class="displayTable">
            <p:dataTable id="boatTable" autoUpdate="true"
                var="b" value="#{filterbean.btOrderlist}">

                <p:column headerText="res. num" width="50">
                    <h:outputText value="#{b.orderNum}" />
                </p:column>

                <p:column headerText="Date" width="50">
                    <h:outputText value="#{b.orderDate}" />
                </p:column>

                <p:column headerText="Yacht name" width="100">
                    <h:outputText value="" />
                </p:column>

            </p:dataTable>
        </h:form>
    </ui:define>

【问题讨论】:

    标签: jsf jsf-2 primefaces


    【解决方案1】:

    属性的存在基本上取决于公共 getter 方法的存在,该方法根据 Javabeans 规范命名。所以orderNum 的属性基本上需要一个名为getOrderNum() 的公共getter(对于输入组件,还需要一个名为setOrderNum() 的公共setter)。

    你没有它们。你给了他们不同的名字。修复类中的方法名,或者EL中的属性名。

    【讨论】:

    • 非常感谢。小错误:(
    【解决方案2】:

    顺便说一句,知道这是 8 年的历史,我在处理布尔/布尔值时发现了一个问题。

    假设我有一个对象成员“活动”,Eclipse 创建一个作为 isActive() 而不是 getActive() 的 getter。 JBOSS/Tomcat 似乎不认识这个吸气剂。我没有在 Glassfish 中尝试过这个,但我会发布它以防其他人发现这个问题......

    【讨论】:

      猜你喜欢
      • 2011-11-11
      • 2012-08-14
      • 1970-01-01
      • 1970-01-01
      • 2015-03-02
      • 2015-07-08
      • 2017-07-28
      • 2011-07-14
      • 2015-07-29
      相关资源
      最近更新 更多