我仍然是初学者和网络编程的初学者。
我正在尝试创建一个小型表单,将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”确实包含文本。
为你提供帮助
答案 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”。