流程中的一个步骤,我想检查是否有给定idNumber
客户的记录。在这种情况下,我想用数据库中的数据填充其余字段。
正在跟踪正在运行的应用程序,我看到currentCustomer
的字段已被来自数据库的数据填充,但由于调用getCustomer…
(返回""
(和setCustomer…
(写入""
(方法,立即被空字符串覆盖按下AJAX按钮后立即调用。
我认为我目前解决问题的方法存在根本性问题,因此我将不胜感激有关如何正确处理这种情况的任何建议。
我有这样的表格:
订单旅行者.xml
<h:outputLabel for="idNumber" value="ID: "/>
<h:inputText id="idNumber" value=“#{orderBean.customerIdNumber}" required="true"/>
<a4j:commandButton value="update" reRender="surname"/>
<br/>
<h:outputLabel for="firstName" value="First name: "/>
<h:inputText id="firstName" value="#{orderBean.customerFirstName}"/>
<br/>
<h:outputLabel for="surname" value="Surname: "/>
<h:inputText id="surname" value="#{orderBean.customerSurname}"/>
并像这样支持豆子:
点豆.java
@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);
}
我理解像这种形式这样的问题是从数据库带来一些值,如果是这种情况,它会将所有值重置为空
尝试进程="@form">
在您的按钮中可能会解决您的问题,尽管在您的页面中使用这么多进程不是好方法,但我认为对于您的情况来说没关系。