Forms Spring表单post不向控制器发送ModelAttribute

Forms Spring表单post不向控制器发送ModelAttribute,forms,spring,modelattribute,Forms,Spring,Modelattribute,我仍然是spring和web编程的初学者 我正在尝试创建一个小表单,该表单会将modelAttribute发送到另一个页面,但modelAttribute始终为null FileUploadForm.java public class FileUploadForm { CommonsMultipartFile file; String blabla; // initiation of FileUploadForm.

我仍然是spring和web编程的初学者

我正在尝试创建一个小表单,该表单会将modelAttribute发送到另一个页面,但modelAttribute始终为null

FileUploadForm.java

    public class FileUploadForm {

           CommonsMultipartFile file;   String blabla;

           // initiation of FileUploadForm.

           public FileUploadForm() {        
              // TODO Auto-generated constructor stub       
              file= null;   
           }        
           public String getBlabla() {      
             return blabla;
           }

           public void setBlabla( String blabla ) {         
               this.blabla = blabla;    
           }

          public CommonsMultipartFile getFile() {       
              return file;  
          }

          public void setFile(CommonsMultipartFile file) {      
             this.file = file;
          }

   }
MyuploadTest.jsp

<script>    
    function addFileToEcc() {
            document.getElementById('file_upload_form').target = 'upload_target';
    };  

</script>
<div>
    <div id="titleSection" style="padding:5px;color:#303030;"class="ui-state-active, ui-widget-content ui-state-active, ui-widget-header ui-state-active"  onclick="$('#fourthSection').slideToggle();" >
        <label>detail</label>
    </div>

    <div id='AttachSection'>
        <form:form id="file_upload_form" action="NewfileUpload.do" method="post" modelAttribute="fileUploadform" enctype="multipart/form-data">
            <input type="text" id='blabla' name="blabla" value="boubou" />
            <iframe id="upload_target" name="upload_target" src=""></iframe>                        
        </form:form>
    </div>
</div>
我知道代码看起来不漂亮,并且会像现在这样抛出错误,但我在FileUploadController.java文件中设置了一个断点,以检查传递给它的参数中的内容,mainForm总是返回null

当我知道我的inputtext id=“blabla”中确实有文本时,任何人都知道为什么它会为null


感谢您的帮助

在通过GET加载带有表单的页面时,是否将表单对象添加到模型中?也许这样的方法可以解决问题:

@RequestMapping( value = "/MyuploadTest", method = RequestMethod.GET) 
public String myUploadTest(Model model) {        
    model.addAttribute("fileUploadform", new FileUploadForm());
    return "MyuploadTest";                  
} 

最可能的原因是您没有包括表单:输入,而是使用输入,如果您有表单:表单
标签。您还忘记了path=“modelAttributeName”。

请格式化代码。方法参数的名称错误。您有一个名为
fileUploadform
not
mainForm
的属性。在JSP或控制器中重命名它。此外,您的控制器看起来很可疑,为什么控制器要扩展
serviceinpl
。您的表单对象不应该依赖于
commonmultipartfile
,而应该依赖于公共接口
MultiPartFile
。您是对的,Jeyp我也有一个控制器,我忘了添加代码中的部分。@RequestMapping(value=“/uploadTest.do”,method=RequestMethod.GET)公共字符串上传屏幕(Model Model){Model.addAttribute(“fileUploadform”,new fileUploadform());System.out.println(“uploadTest”);返回“MyuploadTest”;}很抱歉设置了格式,不确定如何使其看起来格式化您是否已经更改了上面@M.Deinum提到的其他内容?如果这没有帮助,那么也可以尝试以下方法:使用
commandName=“fileUploadform”
而不是
modeldattribute=“fileUploadform”
它会自动设置相应的id和名称值。这是我不明白的,我知道它会转到FileUploadController,我的理解是spring应该知道如何在post上设置modelAttribute。但由于这个原因,FileUploadController中的参数mainForm在itIt中有空数据,因为它被映射到表单id或名称的名称(我不知道atm)。无论如何,您在jsp中将id指定为“file\u upload\u form”,而不具体指定名称,因此没有任何内容与控制器中的
@modeldattribute(“fileUploadform”)
匹配。您应该使用
commandName=“fileUploadform”
并将id/name/modelAttribute值留空
@RequestMapping( value = "/MyuploadTest", method = RequestMethod.GET) 
public String myUploadTest(Model model) {        
    model.addAttribute("fileUploadform", new FileUploadForm());
    return "MyuploadTest";                  
}