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);
}