1. 概述
在表单方案中,我们在数据保存时,可能需要对数据进行一些后端检查,或者修改一些我们提交的数据。这样的需求,可以通过表单方案的代码来进行一些处理。
2. 表单方案脚本
在创建表单方案时,我们会默认出一段java代码。
import com.alibaba.fastjson.JSONObject;
import com.redxun.common.base.entity.JsonResult;
import com.redxun.form.core.entity.AfterParams;
import com.redxun.common.utils.MessageUtil;
//数据保存之前调用
JsonResult beforeSave(JSONObject data) {
//return JsonResult.Fail("出错原因");
return JsonResult.Success();
}
//数据处理之后调用
void afterSave(AfterParams params) {
}
这里我们可以看到,这个脚本有两个方法,一个是保存之前可以调用的方法,一个是在表单数据保存之后调用的方法。
2.1 表单数据保存前方法 beforeSave
保存之前的方法beforeSave这个方法的参数是一个JSONObject对象的数据,这个数据就是表单的数据,这个方法返回一个JsonResult 对象。
关于JsonResult 对象的定义如下: JsonResult定义
2.1.1 修改数据
比如我在保存之前需要对表单的某个数据进行更改,比如修改表单的 name 字段。
我们编写脚本如下:
JsonResult beforeSave(JSONObject data) {
//return JsonResult.Fail("出错原因");
data.name="测试标题";
return JsonResult.Success();
}
2.1.2 验证数据
比如我们在报销的时候需要验证以下报销的金额是否超出范围,我们可以写如下的脚本:
JsonResult beforeSave(JSONObject data) {
if(data.jine>1000){
return JsonResult.Fail("报销金额不能超过:" + data.jine +"元");
}
return JsonResult.Success();
}
2.2 表单保存后置方法 afterSave
这个方法是在表单保存之后进行调用的。
他的参数为 AfterParams 这个参数类定义如下:
public class AfterParams {
//保存数据结果
private DataResult dataResult;
//表单保存后的数据对象
private JSONObject jsonData;
}
其中 DataResult 的数据结构如下:
public class DataResult implements Serializable {
public static final String ACTION_ADD = "add";
public static final String ACTION_UPD = "upd";
//表单数据保存的动作 add 表示这个数据是增加的,upd 表示数据是在更新
private String action = "";
//主键
private String pk = "";
//BO定义别名
private String boAlias = "";
这个就需要根据具体的需求来进行一些代码的编写。
文档更新时间: 2021-03-17 09:53 作者:zyg