该工程的功能是保存一个付款单,工程的起始页面是index.jsp ;
中心思想:
1.页面有三个部分:fkd1(付款单台头);fkd2(付款单明细1,账户明细信息);fkd3(应付单据信息);
2.建立实体类PayHttpEntity来接收页面的信息(这个类的数据属性要和页面传回来的属性名称一致,这样通过ModelDriven才可以接受到数据):
public class PayHttpEntity implements Serializable{
//数据
private String formData;
private String tableDataOne;
private String tableDataTwo;
…
};
3.页面通过ajax发送数据
{"formData":formData,"tableDataOne":tableDataOne,"tableDataTwo":tableDataTwo,deleteTableOneIds:deleteTableOneIds.join(","),deleteTableTwoIds:deleteTableTwoIds.join(",")}
到payAction!saveOrUpdate.action;
4.payAction 是个自定义Action类:public class PayAction extends BaseStruts2Action implements ModelDriven<PayHttpEntity>,通过ModelDriven直接把数据填充到PayHttpEntity对象中。
5.类PayHttpEntity
private PayHttpEntity model=new PayHttpEntity();
public PayHttpEntity getModel() {
return model;
}
完成了页面把数据传送到了后台。
6.页面调用Action的方法saveOrUpdate()(隐藏自动的完成步骤5):
类PayHttpEntity 调用public void saveOrUpdate(){
String result=payService.save(model); //调用业务层的实现类存储model
if (Constant.RESULT_SUCCESS.equals(result)) {
JsonUtil.result(true, "操作成功!");
}else{
JsonUtil.result(false, result);
}
}
7.调用payService.save(model)函数:
String bh=saveForm(model);
// 通过FastJson的JSON.parseObject函数把json字符串赋值给对应//的类
if (!ValidationUtil.validationEmpty(bh)) {
//table1
saveTableOne(model,bh);// 把json串转化为list,给每条记录//赋bh的值,然后保存
//table2
saveTableTwo(model,bh);
return Constant.RESULT_SUCCESS;
}else{
return "数据异常!";
}
至此完成付款单的保存。