spring mvc中使用spring form标签无法正常提交表单
spring MVC中使用spring的form标签库,edit.jsp
代码如下:
jsp
<sf:form method="POST" modelAttribute="spitter" enctype="multipart/form-data"> <fieldset> <table cellspacing="0"> <tr> <th><sf:label path="fullName">Full name:</sf:label> </th> <td><sf:input path="fullName" size="15" id="user_full_name" /><br /> <sf:errors path="fullName" cssClass="error" /> </td> </tr> <tr> <th><sf:label path="name">Username:</sf:label> </th> <td><sf:input path="name" size="15" maxlength="15" id="user_screen_name" /> <small id="username_msg">No spaces, Please.</small><br /> <sf:errors path="name" cssClass="error" /> </td> </tr> <tr> <th><sf:label path="password">Password:</sf:label> </th> <td><sf:password path="password" size="30" showPassword="true" id="user_password" /> <small>6 characters or more.</small><br /> <sf:errors path="password" cssClass="error" /> </td> </tr> <tr> <th><sf:label path="email">Email Address:</sf:label> </th> <td><sf:input path="email" size="30" id="user_email" /> <small>In case you forget something.</small><br /> <sf:errors path="email" cssClass="error" /> </td> </tr> <tr> <th></th> <td> <sf:checkbox path="updateByEmail" id="user_send_email_newsletter" /> <label for="user_send_email_newsletter">Send me email updates!</label> </td> </tr> <tr> <th></th> <td><input name="commit" type="submit" value="Create Account." /></td> </tr> </table> </fieldset> </sf:form>
控制器的代码如下:
java
@RequestMapping(method = RequestMethod.GET, params = "new") public String createSpitterProfile(Model model) { model.addAttribute(new Spitter()); return "spitters/edit"; } @RequestMapping(method = RequestMethod.POST) public String addSpitterFromForm(@Valid @ModelAttribute("spitter")Spitter spitter, BindingResult bindingResult) { if(bindingResult.hasErrors()) { return "spitters/edit"; } spitterService.saveSpitter(spitter); return "redirect:/spitter/" + spitter.getName(); }
在jsp的<sf:form method="POST" modelAttribute="spitter" enctype="multipart/form-data">
语句中,如果enctype=application/x-www-form-urlencoded
则运行正常;如果调成multipart/form-data
后,提交表单时不管用户名写的是什么,转到的网页后面显示的用户名都是null
。请问这是怎么回事?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
multipart/form-data
这是上传文件使用的编码方式,你的表单当然要设置成enctype=application/x-www-form-urlencoded
在spring的配置文件中添加了
multipartResolver
:并在
pom.xml
中加入了commons-io
和commons-fileupload
依赖后,可以在multipart/form-data
下正常提交表单数据了。