1. 登录系统,选择【表单管理】-【表单管理】,点击“添加/编辑”按钮,进入表单设计器,如下图:

2. 在表单设计器,选择“表单属性”下面的“表单脚本”,如下图:

脚本可以通过左上方的下拉框选择后自动填入,自动填入后只需要手动修改下“tableName”,改成表单对应的表,也就是需要做唯一校验的那张表,用英文的单引号或者双引号括起来,例如:
validationScript.validationDemoFull(‘t_tomcs’, data)。

示例脚本如下

    public Void validationDemoFull(String tableName, String data) {
        try {
            validationDemoBefore(tableName, data);
        }
        catch (Exception e) {
            throw new BaseException(e);
        }
        finally {
            validationDemoAfter();
        }
        return null;
    }

    public Void validationDemoBefore(String tableName, String data) {
        MapUniquePropertyValidator validator = AppUtil.getBean(MapUniquePropertyValidator.class);
        ValidationContextUtil.setLocal(validator);

        DefaultTable table = new DefaultTable(tableName, tableName);
        Column pkProperty = new DefaultColumn("id", "id_", "主键");
        Column[] uniqueProperties = new Column[1];
        uniqueProperties[0] = new DefaultColumn("name", "name_", "name");

        MapUniquePropertyValidation mapUniquePropertyValidation = MapUniquePropertyValidation.createMapUniquePropertyValidation(
                table, pkProperty, "name", "fullName", uniqueProperties);
        validator.setValidation(mapUniquePropertyValidation);
        validator.setSingleUniqueValue(false);
        validator.setJdbcTemplate(jdbcTemplate);
        MapValidationErrors validate = validator.validate(JacksonUtil.toMap(data));
        if (null != validate && validate.hasError()) {
            throw new BaseException(validate.toString());
        }
        return null;
    }

    public Void validationDemoAfter() {
        ValidationContextUtil.processAfterInvoke();
        return null;
    }

脚本写法参考 约束表单信息唯一性

脚本配置说明

前置校验脚本与后置校验脚本是互相关联的,必须同时配置或不配置。配置后,表单提交时会自动执行脚本校验,否则不执行脚本校验。

校验脚本配置后,还需要在表单脚本中插入唯一校验方法,该方法执行时会调用到校验脚本中配置的脚本,可在方法中通过返回的数据进行后续操作。

注意:脚本中存放需要校验的数据的参数名必须是“data”,不可用其他参数名。

文档更新时间: 2021-04-23 11:42   作者:朱业成