Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 列表的Spring验证不为空_Java_Spring_List_Validation_Spring Mvc - Fatal编程技术网

Java 列表的Spring验证不为空

Java 列表的Spring验证不为空,java,spring,list,validation,spring-mvc,Java,Spring,List,Validation,Spring Mvc,我不明白问题的原因。我的模型中有一个列表,我想使用Spring和接口验证器来验证它 验证器: @Component public class OperationValidator implements Validator { @Override public boolean supports(Class<?> arg0) { return OperationList.class.equals(arg0); } @Override public void validate(

我不明白问题的原因。我的模型中有一个列表,我想使用Spring和接口验证器来验证它

验证器:

@Component
public class OperationValidator implements Validator {

@Override
public boolean supports(Class<?> arg0) {
    return OperationList.class.equals(arg0);
}

@Override
public void validate(Object obj, Errors err) {
    OperationList opearationList = (OperationList) obj;

    List<String> opers = opearationList.getOperations();
    if(opers==null || opers.isEmpty()){
        err.rejectValue("operations", "operationlist.oplist.empty");
    }
}
有人能解释这些麻烦的原因吗?在tcp/ip监视器中,我看到记录_operations=on 当我标记复选框并且操作列表不是空的时候,一切都正常。还有一件有趣的事。在我的应用程序中,我有另一个用于文件上传的验证器。所以它工作得很好。 我使用hibernate验证程序v.5.1.3;弹簧v.4.1.6。服务器-tomcat 8

我发现问题。 BindingResult参数始终直接位于带有@Value注释的参数之后

<sf:form method="post" commandName="operationsList" action="${pageContext.request.contextPath}/operation">
<p>
    <sf:checkboxes   element="li" path="operations" items="${list}" ></sf:checkboxes>
    <sf:errors path="operations" cssStyle="color: #ff0000"></sf:errors>
</p>
<input type="submit" value="Go" />
    @RequestMapping(value = "/operation", method = RequestMethod.POST)
public ModelAndView processOperation( @ModelAttribute @Valid OperationList opList, HttpSession session,
        BindingResult result) {
    ModelAndView mav =new ModelAndView();
    if (result.hasErrors()) {
        mav.setViewName("index");
    } else {
        session.setAttribute("operations", opList);
        mav.setViewName("switchfile");
    }
    return mav;
}
@Component
public class OperationValidator implements Validator {

@Override
public boolean supports(Class<?> arg0) {
    return OperationList.class.equals(arg0);
}

@Override
public void validate(Object obj, Errors err) {
    OperationList opearationList = (OperationList) obj;

    List<String> opers = opearationList.getOperations();
    if(opers==null || opers.isEmpty()){
        err.rejectValue("operations", "operationlist.oplist.empty");
    }
}
the request sent by the client was syntactically incorrect.