Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.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 具有BindingResult属性的Spring验证从未命中目标控制器方法_Java_Spring Mvc_Validation_Spring Validator - Fatal编程技术网

Java 具有BindingResult属性的Spring验证从未命中目标控制器方法

Java 具有BindingResult属性的Spring验证从未命中目标控制器方法,java,spring-mvc,validation,spring-validator,Java,Spring Mvc,Validation,Spring Validator,我提交了一份表格以上载文件: <form id="uploadForm" action="#" method="POST" enctype="multipart/form-data"> <div class="instruction popup_inst"> <span class="popup_logo">[@spring.message "pandaLogo"/]</span> <div clas

我提交了一份表格以上载文件:

<form id="uploadForm" action="#" method="POST" enctype="multipart/form-data">
    <div class="instruction popup_inst">
        <span class="popup_logo">[@spring.message "pandaLogo"/]</span>

        <div class="float_right">
            <input type="button" id="cancelBtn" class="btn" onclick="closePopupFunctionality();" value="[@spring.message "cancelButton"/]" />

            <input class="btn" type="submit" id="submit" onclick="validateFileInput();" value="[@spring.message "uploadButton"/]" />
        </div>

    </div>
    <span class="popup_title">[@spring.message "uploadFile"/]</span>
    <div class="popup_container">
        [@spring.bind "assayAssessmentsRequestBean"/]
        [@spring.formInput path="assayAssessmentsRequestBean.designabilityFile.file" fieldType="file" attributes="title='path' class='upload' accept='.txt,.csv,.zip'" /]
        [@spring.formHiddenInput path="assayAssessmentsRequestBean.dateOfAssessment" attributes="" /]
        [@spring.formHiddenInput path="assayAssessmentsRequestBean.id" attributes="" /]
        [@spring.showErrors " " "error" /]
    </div>
    <input id="uploadfile" type="hidden" value="${uploadfile}"/>
</form>
发生的情况是,该方法从未被调用,当我删除BindingResult属性时,该方法被调用

我尝试了另一种方法,即使用BeanPropertyBindingResult属性并传递要验证的目标对象,它可以工作,但从不返回错误

@RequestMapping(value = "/uploadFile",method= RequestMethod.POST)
    public ModelAndView uploadFile(@ModelAttribute(value = "assayAssessmentsRequestBean")AssayAssessmentsRequestBean assayAssessmentsRequestBean,HttpSession session/*,BindingResult result*/) throws PanDaApplicationException {
        logger.info(assayAssessmentsRequestBean.getDesignabilityFile().getFile());
        BindingResult result=new BeanPropertyBindingResult(assayAssessmentsRequestBean.getDesignabilityFile(),"designabilityFile");

在要验证的对象之前应该有@Valid注释,并且BindingResult必须紧跟在验证对象之后

所以这应该可以完成任务

 public ModelAndView  uploadFile(@Valid @ModelAttribute(
    value = "assayAssessmentsRequestBean")AssayAssessmentsRequestBean   assayAssessmentsRequestBean,BindingResult result,
HttpSession session) {

 }
然后,您应该定义自己的验证器并将其设置为活页夹。验证器将被自动调用。
但我不确定是否可以用这种方式对多部分进行验证。

在要验证的对象之前应该有@Valid注释,并且BindingResult必须紧跟在验证的对象之后

所以这应该可以完成任务

 public ModelAndView  uploadFile(@Valid @ModelAttribute(
    value = "assayAssessmentsRequestBean")AssayAssessmentsRequestBean   assayAssessmentsRequestBean,BindingResult result,
HttpSession session) {

 }
然后,您应该定义自己的验证器并将其设置为活页夹。验证器将被自动调用。
但是我不确定您是否可以用这种方式对multipart进行验证。

它实际上起作用了,原因是您告诉我“认为BindingResult应该紧跟在验证对象之后”谢谢:-)您可以删除“think the BindingResult应该紧跟在验证对象之后”并替换为“BindingResult必须紧跟在经过验证的对象之后。”(这篇文章刚刚保存了我的理智!)它实际上起作用了,原因是,我从您那里得知“认为BindingResult应该紧跟在经过验证的对象之后”谢谢:-)您可以删除认为BindingResult应该紧跟在已验证对象之后”,并替换为“BindingResult必须紧跟在已验证对象之后。”(这篇文章刚刚保存了我的理智!)