我想用 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 是其他实体。如果需要,我也可以添加它们。