Spring Form post不会将ModelAttribute发送给控制器

时间:2013-12-06 17:12:21

标签: forms spring modelattribute

我仍然是初学者和网络编程的初学者。

我正在尝试创建一个小型表单,将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

@Controller     
    @SessionAttributes  
    public class FileUpload extends ServiceImpl {

        @Autowired
        Log log;        
        @Autowired 
        FileManagementService gFM;

    @RequestMapping( value = "/NewfileUpload.do", method = RequestMethod.POST ) 
    //      public ModelAndView uploadFile( @ModelAttribute FileUploadForm mainForm, HttpServletRequest pRequest ) {        
       public ModelAndView uploadFile( @ModelAttribute("fileUploadform") FileUploadForm mainForm, HttpServletRequest pRequest ) {
             log.info( "Begin File Upload." );
             FileUploadDetails fud = new FileUploadDetails();                            
             fud.setStatusCode( FileUploadDetails.STATUS_SUCCESS );

             return new ModelAndView( "fileUploaded", "fud", fud );                  
      } 
   }

我知道代码看起来不漂亮并会抛出错误,但是我在FileUploadController.java文件中设置了一个断点来检查传递给它的参数是什么,mainForm总是返回null。 / p>

任何人都知道为什么它会为null而我知道我的inputtext id =“blabla”确实包含文本。

为你提供帮助

2 个答案:

答案 0 :(得分:0)

您是否在通过GET加载带有表单的页面时将Form-Object添加到模型中?也许这样的事情解决了这个问题:

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

答案 1 :(得分:0)

最可能的原因是您不包含 form:input ,而是使用 input ,如果您具有 form,则将不起作用:form 标签。您还忘记了path =“ modelAttributeName”。