相关疑难解决方法(0)

使用HibernateValidator进行交叉字段验证不会显示任何错误消息

我正在使用此答案中HibernateValidator指定的表格上的两个字段"password"和"confirmPassword"进行验证.以下是约束描述符(验证器接口).

package constraintdescriptor;

import constraintvalidator.FieldMatchValidator;
import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.Documented;
import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
import static java.lang.annotation.ElementType.TYPE;
import java.lang.annotation.Retention;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;

@Target({TYPE, ANNOTATION_TYPE})
@Retention(RUNTIME)
@Constraint(validatedBy = FieldMatchValidator.class)
@Documented
public @interface FieldMatch
{
    String message() default "{constraintdescriptor.fieldmatch}";
    Class<?>[] groups() default {};
    Class<? extends Payload>[] payload() default {};

    /**
     * @return The first field
     */
    String first();

    /**
     * @return The second field
     */
    String second();

    /**
     * Defines several <code>@FieldMatch</code> annotations on the …
Run Code Online (Sandbox Code Playgroud)

spring jsp spring-mvc hibernate-validator bean-validation

14
推荐指数
1
解决办法
1万
查看次数

Spring MultipartFile 验证和转换

我目前有一个采用 MultipartFile 的 Spring MVC 控制器

@RequestMapping(method = RequestMethod.POST)
public String doUpload(@RequestParam("file") final MultipartFile file) {
    /* ... */
}
Run Code Online (Sandbox Code Playgroud)

该文件包含将用于创建域对象列表的 csv 数据,每行一个。这是有效的。

我为行数据编写了一个转换器:

class MyObjectConverter implements org.springframework...Converter<String[], MyObject> {
    /* ... */
}
Run Code Online (Sandbox Code Playgroud)

和文件的验证器

class UploadFileValidator implements org.springframework.validation.Validator { 
    /* ... */
}
Run Code Online (Sandbox Code Playgroud)

我有一个表格可以上传:

<form method="post" 
    action="<@spring.url '/upload'/>" 
    enctype="multipart/form-data">
        <input id="upload" type="file" name="file"/>
        <input type="submit" id="uploadButton"/>
    </form
Run Code Online (Sandbox Code Playgroud)

但我真正想做的是将它们联系在一起,这样我的控制器就可以有一个类似的方法

@RequestMapping(method = RequestMethod.POST)
public String doUpload(
    @Valid final List<MyObject> objList, 
    final BindingResult result) { ...}
Run Code Online (Sandbox Code Playgroud)

我知道 Spring MVC 框架支持转换器和验证器,但我不明白如何让它们协同工作。

spring spring-mvc

0
推荐指数
1
解决办法
1万
查看次数