Spring MVC 3表单绑定

use*_*567 2 java jsp spring-mvc

我有一个简单的HTML表单:

<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>
Run Code Online (Sandbox Code Playgroud)

我提交时需要自动绑定此表单.这很好用:

@RequestMapping(value = "/.....", method = RequestMethod.POST)
public String PublishForm() {        
Run Code Online (Sandbox Code Playgroud)

但是这会引发以下错误:

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

@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
                           ) {
Run Code Online (Sandbox Code Playgroud)

谁能帮我?

更新:我发现,如果我enctype="multipart/form-data"从HTML表单中删除它,它的工作原理.现在我的问题是如何使其工作enctype="multipart/form-data".

Pau*_*lan 7

我想您可能会错过配置中的Multipart解析器.

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

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="250000"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

请看这里关于此事的官方春季文件.