带有对象列表的 Grails 自定义验证
Grails Custom Validation with List of objects
我已经对 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)
}
}
}}
但我现在需要多个文件,我想更改自定义验证以获取列表并应用约束。
<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)
}
}
}
}
我已经对 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)
}
}
}}
但我现在需要多个文件,我想更改自定义验证以获取列表并应用约束。
<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)
}
}
}
}