Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从jsf页面重新更新域项目属性_Jsf_Jsf 2_Primefaces - Fatal编程技术网

从jsf页面重新更新域项目属性

从jsf页面重新更新域项目属性,jsf,jsf-2,primefaces,Jsf,Jsf 2,Primefaces,我有一个充满信息的数据表。在选定的一行上,调用“onRowSelect”方法。 “订单号”输出文本条目由从ProductOrder对象检索的值填充 /* Filter bean */ public void onRowSelect(SelectEvent event) { NewOrderBean currentOrder = (NewOrderBean) FacesUtils .getManagedBean("newOrderBean"); curren

我有一个充满信息的数据表。在选定的一行上,调用“onRowSelect”方法。 “订单号”输出文本条目由从ProductOrder对象检索的值填充

/* Filter bean */
public void onRowSelect(SelectEvent event) {
    NewOrderBean currentOrder = (NewOrderBean) FacesUtils
            .getManagedBean("newOrderBean");
    currentOrder.setOrderNum(((ProductOrder) event.getObject()).getOrderNum());
}

/* newOrderBean */
public int update() {
    ProductOrder pt = new ProductOrder ();
    try {
        pt = productService.findOrderbyNum(orderNum).get(0);
    } catch (Exception e) {
        return 0;
    }

    pt.setOrderNum(orderNum);

    try {
        FacesMessage msg = new FacesMessage("Product updated with: ", orderNum);
        FacesContext.getCurrentInstance().addMessage(null, msg);
        return 1;
    } catch (Exception e) {
        return 0;
    }
}
用户在“订单号”中输入新文本后,按更新修改产品订单号

<!-- JSF page -->
<ui:define id="content" name="contentBody">
    <h:form class="ViewResservation" id="viewPanel">
        <p:tabView id="tabView">
            <p:tab title="Client" id="tab1">
                    <h:outputText value="Order number " />
                <p:inputText id="ordr" value="#{newOrderBean.orderNum}" />
                </p:tab>
            </p:tabView>    
    </h:form>
</ui:define>        
    <ui:define name="footer">
        <h:form>
            <h:commandButton value="Update"
                actionListener="#{newOrderBean.update}" />
        </h:form>
    </ui:define>

问题是,在输入新文本并按Update后,值(orderNum)保持不变。如何获取用户输入的值,以及
是否使用新订单号更新ProductOrder对象?

选项卡必须位于tabview元素内。你把它倒过来了


对于您的问题,您的订单号在一个表单中设置,提交按钮在另一个表单中设置。您需要以相同的形式将两者放在一起,否则订单号不会提交。

选项卡必须位于tabview元素内。你把它倒过来了


对于您的问题,您的订单号在一个表单中设置,提交按钮在另一个表单中设置。您需要将两者以相同的形式提交,否则订单号不会提交。

是的,它可以工作,谢谢siebz0r。我注意到,在我的情况下,每次按下“更新”键时,当选择其中一行时。页面刷新,并再次调用onRowSelect方法。为什么会发生这种情况?我不知道为什么会刷新页面。之所以调用onRowSelect,可能是因为ajax事件的形式相同,但我不确定这一点。如果我的回答回答了您的问题,请将其标记为已接受。;-)是的,很有效,谢谢你,siebz0r。我注意到,在我的情况下,每次按下“更新”键时,当选择其中一行时。页面刷新,并再次调用onRowSelect方法。为什么会发生这种情况?我不知道为什么会刷新页面。之所以调用onRowSelect,可能是因为ajax事件的形式相同,但我不确定这一点。如果我的回答回答了您的问题,请将其标记为已接受。;-)