Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/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&x2013;如何防止字段在更新时被覆盖_Jsf_Jsf 2.2 - Fatal编程技术网

JSF&x2013;如何防止字段在更新时被覆盖

JSF&x2013;如何防止字段在更新时被覆盖,jsf,jsf-2.2,Jsf,Jsf 2.2,这是流程中的一个步骤,我想检查是否存在具有给定idNumber的客户记录。在这种情况下,我希望用数据库中的数据填充其余字段 我正在跟踪正在运行的应用程序,我看到currentCustomer的字段中已填充了来自db的数据,但由于调用getCustomer…(返回”)和setCustomer…(写入”)而立即被空字符串覆盖方法在按下AJAX按钮后立即调用 我认为我目前解决问题的方法有一些根本性的错误,因此我希望能就如何正确处理这种情况提供任何建议 我有这样的表格: order-travelers.

这是流程中的一个步骤,我想检查是否存在具有给定
idNumber
的客户记录。在这种情况下,我希望用数据库中的数据填充其余字段

我正在跟踪正在运行的应用程序,我看到
currentCustomer
的字段中已填充了来自db的数据,但由于调用
getCustomer…
(返回
)和
setCustomer…
(写入
)而立即被空字符串覆盖方法在按下AJAX按钮后立即调用

我认为我目前解决问题的方法有一些根本性的错误,因此我希望能就如何正确处理这种情况提供任何建议

我有这样的表格:

order-travelers.xml


我理解这个问题,比如这个表单从DB中带来一些值,然后它将所有值重置为空,如果是这样的话,请尝试

process=“@form”


在您的页面中,按钮可能会解决您的问题,尽管在页面中使用这么多进程不是一个好方法,但我认为对于您的情况,它会很好。

我认为这只适用于使用RichFaces时的PrimeFaces。然而,您是对的,ajax存在问题。我将相关行更改为
,似乎解决了问题。
@Named
@FlowScoped("order")
public class orderBean implements Serializable {
private Customer currentCustomer = new Customer();
private List<Customer> customers = new ArrayList<>();

private Customer knownCustomer(String id) {
    …
    Criteria cr = session.createCriteria(Customer.class);
    cr.add(Restrictions.eq("idNumber",id));
    List<Customer> results = cr.list();

    if (results.isEmpty()) return currentCustomer;
    else return results.get(0);
}

public String getCustomerIdNumber() {
    return currentCustomer.getIdNumber();
}

public void setCustomerIdNumber(String idNumber) {
    currentCustomer = knownCustomer(idNumber);
    currentCustomer.setIdNumber(idNumber);
}

public String getCustomerFirstName() {
    return currentCustomer.getFirstName();
}

public void setCustomerFirstName(String firstName) {
    currentCustomer.setFirstName(firstName);
}

public String getCustomerSurname() {
    return currentCustomer.getSurname();
}

public void setCustomerSurname(String surname) {
    currentCustomer.setSurname(surname);
}