grails - 使用对象列表进行Grails自定义验证

标签 grails gorm custom-validators grails-validation grails-3.3

我已经有一个MultipartFile的自定义验证。

class ImageCommand implements Validateable {
MultipartFile imageFile

static constraints = {
    imageFile  validator: { val, obj ->
        if ( val == null ) {
            return false
        }
        if ( val.empty ) {
            return false
        }

        ['jpeg', 'jpg', 'png'].any { extension ->
            val.originalFilename?.toLowerCase()?.endsWith(extension)
        }
    }
}}

但是我现在将需要多个文件,我想更改自定义验证以获取List并应用约束。
<input type="file" id="imageFile1" name="imageFile">
to
<input type="file" id="imageFile1" name="imageFiles">
<input type="file" id="imageFile2" name="imageFiles">

任何想法如何在自定义验证中使用集合???

最佳答案

如果输入的名称相同,则将获得List<MultipartFile> imageFiles
因此,您必须调整验证器以使用列表:

static constraints = {
    imageFiles validator: { val, obj ->
        val && val.every { imgFile ->
            if ( imgFile == null ) {
                return false
            }
            if ( imgFile.empty ) {
                return false
            }

            ['jpeg', 'jpg', 'png'].any { extension ->
                imgFile.originalFilename?.toLowerCase()?.endsWith(extension)
            }
        }
    }
}

关于grails - 使用对象列表进行Grails自定义验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50866919/

相关文章:

grails - Grails多个数据源,在尝试将新实例保存到所选数据源中时不起作用

grails - HSQL数据库管理器不在Grails 2.0中出现

asp.net-mvc - MVC 2 中带有自定义模型绑定(bind)器的自定义验证属性

jsf - 自定义验证器,我应该使用 FacesContext#addMessage() 还是抛出 ValidatorException?

angular - 使用 Angular 进行跨场验证

grails - Grails HasMany在长期

java - Grails Spring 安全 : Anonymous pages not showing authentication information

grails - Validate()返回false,但已保存在数据库中

grails - 有没有一种简单的方法可以对Grails域类中的列进行加密/解密?

date - grails 在 gsp View 中更改日期格式