我正在使用Spring MVC。当method = post时,我无法从url获取参数。但是,当我将方法更改为GET时,便可以获取所有参数。
这是我的表格:
<form method="POST" action="http://localhost:8080/cms/customer/create_customer" id="frmRegister" name ="frmRegister" enctype="multipart/form-data"> <input class ="iptRegister" type="text" id="txtEmail" name="txtEmail" value="" /> <input class ="iptRegister" type="password" id="txtPassword" name="txtPassword" value="" /> <input class ="iptRegister" type="text" id="txtPhone" name="txtPhone" value="" /> <input type="button" id="btnRegister" name="btnRegister" value="Register" onclick="" style="cursor:pointer"/> </form>
这是我的控制器:
@RequestMapping(value= "/create_customer", method = RequestMethod.POST) @ResponseBody public String createCustomer(HttpServletRequest request, @RequestParam(value="txtEmail", required=false) String email, @RequestParam(value="txtPassword", required=false) String password, @RequestParam(value="txtPhone", required=false) String phone){ ResultDTO<String> rs = new ResultDTO<String>(); rs.setStatus(IConfig.SHOW_RESULT_SUCCESS_ON_MAIN_SCREEN); try{ Customer c = new Customer(); c.setEmail(email); c.setPassword(password); c.setPhone(phone); customerService.insert(c); rs.setData("Insert success"); }catch(Exception ex){ log.error(ex); rs.setStatus(IConfig.SHOW_RESULT_ERROR_ON_MAIN_SCREEN); rs.setData("Insert failure"); } return rs.toString(); }
我该如何解决?
如果删除,Spring批注将正常工作enctype="multipart/form-data"。
enctype="multipart/form-data"
@RequestParam(value="txtEmail", required=false)
您甚至可以从request对象获取参数。
request
request.getParameter(paramName);
如果属性数量很大,请使用表单。会方便的。入门指南。
如果要接收,请配置多部分解析器enctype="multipart/form-data"。
<bean id="multipartResolver"
class=”org.springframework.web.multipart.commons.CommonsMultipartResolver”>
请参阅Spring文档。