首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring 3表单绑定

Spring 3表单绑定
EN

Stack Overflow用户
提问于 2011-09-23 07:10:47
回答 2查看 5.8K关注 0票数 2

我有一个简单的HTML表单:

代码语言:javascript
复制
<form id="marketplaceForm" enctype="multipart/form-data" method="post">
<select name="category">
    <option selected ></option>
    <option value="Sales">Sales</option>
    <option value="Marketing" >Marketing</option>
</select>
<textarea type="text" id="marketplaceDesc" name="description" value="" class="creattbleArea"></textarea>
<input type="text" id="marketplaceName" name="templateName" >
<input type="file" id="marketplaceLogo" name="logo">
<input type="submit" value="Save" id="update" />
<input type="text" id="marketplacePrice" name="price">
</form>

当我提交这个表单时,我需要自动绑定它。这样做很好:

代码语言:javascript
复制
@RequestMapping(value = "/.....", method = RequestMethod.POST)
public String PublishForm() {        

但这会引发以下错误:

HTTP状态400 -客户端发送的请求在语法上不正确。

代码语言:javascript
复制
@RequestMapping(value = "/PublishApplication.htm", method = RequestMethod.POST)
public String PublishForm(@RequestParam("templateName") String templateName,
                           @RequestParam("category") String category,
                           @RequestParam("price") String price,
                           @RequestParam("description") String description
                           ) {

有人能帮我吗?

更新:--我发现如果从表单中删除enctype="multipart/form-data",它就能工作。现在我的问题是如何使它与enctype="multipart/form-data"一起工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-23 08:04:04

我认为您可能在配置中缺少了多部分解析器。

你的配置中有这样的东西吗?

代码语言:javascript
复制
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="250000"/>
</bean>

有关此事的官方春季文档,请参见这里

票数 7
EN

Stack Overflow用户

发布于 2011-09-23 07:31:17

首先,确保绑定到PublishApplication.htm确实有效。您正在控制器中使用此映射,但尚未在action param of <form>标记中指定它。因此,您可能最终会将表单提交给一些不同的控制器,而服务器拒绝您的请求。当然,如果您同时使用相同的控制器来显示表单并对其进行子处理,并且您已经在类级别上使用了RequestMapping注释,那么这种情况就不会发生。

不过,您的控制器还有另一个问题。您没有在logo方法中将@RequestParam指定为PublishForm。我不确定这是否会破坏表单的自动绑定。如果我没记错的话,默认情况下,这些参数是必需的

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7525482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档