Grails自定义验证与对象列表

时间:2018-06-14 22:42:36

标签: 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">

知道如何在自定义验证中使用集合吗?

1 个答案:

答案 0 :(得分:1)

如果输入名称相同,您将获得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)
            }
        }
    }
}