0

我想用 primefaces 在另一个 p:datatable 中创建 ap:datatable。只要我只显示值(使用 outputText),一切都很好。但是,如果我想使用 inputText 更改值,则在发送表单后会出现以下异常。

引起:javax.el.PropertyNotFoundException:目标无法到达,'lineItem' 在 org.apache.el.parser.AstValue.getTarget(AstValue.java:127) [jbossweb-7.0.17.Final.jar:] 在 org 返回 null .apache.el.parser.AstValue.getType(AstValue.java:82) [jbossweb-7.0.17.Final.jar:] at org.apache.el.ValueExpressionImpl.getType(ValueExpressionImpl.java:176) [jbossweb-7.0 .17.Final.jar:] at org.jboss.weld.el.WeldValueExpression.getType(WeldValueExpression.java:93) [weld-core-1.1.9.Final.jar:2012-08-06 19:12] at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:98) [jsf-impl-2.2.0-m10.jar:2.2.0-m10-SNAPSHOT] ... 还有 46 个

这是我的豆:

@ManagedBean
@ViewScoped
public class OmsOrderActionBean implements Serializable {

private Order order;

public String init(){
    number = facesContext.getExternalContext().getRequestParameterMap().get("number");
    dtype = CharUtils.toChar(facesContext.getExternalContext().getRequestParameterMap().get("dtype"), ' ');

    if (!StringUtils.isEmpty(number)) {
        Order order = orderDao.findOrderByNo(number);

        if (order == null) {
            JSFUtil.flashScope().put("oid", number);
            return UiConstants.NAV_ERROR_NOT_FOUND;
        }

        setOrder(order);
public Order getOrder() {
    return order;
}
}

这是我的订单:

@Entity    
@Table(name = "orders")
@Inheritance(strategy = InheritanceType.JOINED)
public class Order extends DefaultEntityTemplate implements Serializable, Cloneable {

// bi-directional many-to-one association to OrderGroup
@OneToMany(mappedBy = "order", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER)
@Fetch(FetchMode.SUBSELECT)
private List<OrderGroup> orderGroups;


public List<OrderGroup> getOrderGroups() {
    if (orderGroups == null) {
        orderGroups = new ArrayList<>();
    }
    return orderGroups;
}

public void setOrderGroups(List<OrderGroup> orderGroups) {
    if (!CollectionUtils.isEmpty(orderGroups)) {
        for (OrderGroup orderGroup : orderGroups) {
            orderGroup.setOrder(this);
        }
    }

    getOrderGroups().clear();
    getOrderGroups().addAll(orderGroups);
}
}

这是我的 xhtml 页面:

<f:metadata>
    <f:viewAction action="#{omsOrderActionBean.init()}" />
</f:metadata>

<p:outputPanel id="outpOrderGroups">
<p:dataTable id="orderGroupTbl" var="group" value="# omsOrderActionBean.order.orderGroups}" emptyMessage="" >
<p:column>
<p:dataTable var="oglineItem" value="#{group.orderGroupLineItems}" emptyMessage="">
 <p:column>
  <h:inputText id="quantityInput" value="#{oglineItem.lineItem.quantity}"/>
 </p:column>
</p:dataTable>
</p:outputPanel>

有没有人已经尝试过这样的事情?OrderGroupLineItem 和 LineItem 是其他实体。如果需要,我也可以添加它们。

4

0 回答 0