JavaBean: Visit类
public class Visit implements Serializable {
// ...其他属性
//private Long visit_cust_id;// 客户id
private Customer customer;
//private Long visit_user_id;//负责人id
private User user;
}
Customer类
public class Customer implements Serializable {
// ...其他属性
private String cust_name; //'客户名称(公司名称)'
}
前端:
<INPUT type="text" name="customer.cust_name"/>
目的
将前端的文本框数据封装到customer对象中 Action类
public class VisitAction extends BaseAction implements ModelDriven<Visit> {
private Visit visit=new Visit();
@Override
public Visit getModel() {
return visit;
}
public String Xxx(){
//打印 封装的数据cust_name值
}
}
由于驱动模型中Visit对象包含了customer对象,所以封装前端的customer.cust_name时,不需要在Action类中提供customer私有属性和set方法,否则会导致customer对象一直为null
正确做法
public class VisitAction extends BaseAction implements ModelDriven<Visit> {
private Visit visit=new Visit();
@Override
public Visit getModel() {
return visit;
}
public String Xxx(){
//打印 封装的数据cust_name值
Customer customer=visit.getCustomer;
System.out.println(customer.getCust_name);
}
}
或者
public class VisitAction extends BaseAction implements ModelDriven<Visit> {
private Visit visit=new Visit();
@Override
public Visit getModel() {
return visit;
}
private Customer customer;
public String Xxx(){
//打印 封装的数据cust_name值
customer=visit.getCustomer;
System.out.println(customer.getCust_name);
}
}
错误做法
public class VisitAction extends BaseAction implements ModelDriven<Visit> {
private Visit visit=new Visit();
@Override
public Visit getModel() {
return visit;
}
private Customer customer;
public Customer getCustomer() {
return customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
public String Xxx(){
//打印 封装的数据cust_name值
// System.out.println(customer.getCust_name);
//报错,空指针异常
}
}
public class VisitAction extends BaseAction implements ModelDriven<Visit> {
private Visit visit=new Visit();
@Override
public Visit getModel() {
return visit;
}
private Customer customer=visit.getCustomer;
public String Xxx(){
//打印 封装的数据cust_name值
// System.out.println(customer.getCust_name);
//报错,空指针异常
}
}