Java Spring,请求方法';邮政';不支持
首先,要对这个重复的问题表示歉意 实际上,在我的spring应用程序中,我有Java Spring,请求方法';邮政';不支持,java,spring,jsp,post,Java,Spring,Jsp,Post,首先,要对这个重复的问题表示歉意 实际上,在我的spring应用程序中,我有user.jsp和professional.jsp 这是我的User.jsp: <form:form action="profile/user" modelAttribute="profile"> <div> <jsp:include page="professional.jsp"></jsp:include> </div>
user.jsp
和professional.jsp
这是我的User.jsp:
<form:form action="profile/user" modelAttribute="profile">
<div>
<jsp:include page="professional.jsp"></jsp:include>
</div>
</form:form>
问题
是当我们在professional.jsp
中单击Add
按钮时,服务器控制台中没有响应,但显示以下警告消息:
29 Mar, 2013 1:03:51 PM org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleHttpRequestMethodNotSupported
WARNING: Request method 'POST' not supported
为什么会有这样的警告?我已经指定了method=“POST”
请帮助..您正在为
放弃密码
方法中的UserProfessionalForm professionalForm
参数进行注释
@RequestMapping(value = "proffessional", method = RequestMethod.POST)
public @ResponseBody
String forgotPassword(@ModelAttribute UserProfessionalForm professionalForm,
BindingResult result, Model model) {
UserProfileVO userProfileVO = new UserProfileVO();
userProfileVO.setUser(sessionData.getUser());
userService.saveUserProfile(userProfileVO);
model.addAttribute("professional", professionalForm);
return "Your Professional Details Updated";
}
在Jsp中:
action="profile/proffiesional"
内部控制器
@RequestMapping(value = "proffessional", method = RequestMethod.POST)
拼写不匹配 Your user.jsp:
<form:form action="profile/proffesional" modelAttribute="PROFESSIONAL">
---
---
</form:form>
试试这个
@RequestMapping(value = "proffessional", method = RequestMethod.POST)
public @ResponseBody
String forgotPassword(@ModelAttribute("PROFESSIONAL") UserProfessionalForm professionalForm,
BindingResult result, Model model) {
UserProfileVO userProfileVO = new UserProfileVO();
userProfileVO.setUser(sessionData.getUser());
userService.saveUserProfile(userProfileVO);
model.addAttribute("professional", professionalForm);
return "Your Professional Details Updated";
}
作为参考,我删除了action属性,并且在调用ajax帖子时出现了此错误。尽管我的action属性在表单中类似于
action=“javascript://;”“
我以为我是通过ajax调用和序列化表单得到它的,但我再次向表单添加了虚拟操作属性,它成功了。我在sprint安全xml文件中启用了csrf,所以我只在表单中添加了一行:
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
通过这种方式,我可以提交带有
model
属性的表单。再次发出警告:2013年3月29日下午1:37:32 org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleHttpRequestMethodNotSupported警告:请求方法“POST”不受支持我做了这么多。。。我不敢说。哈哈获得此警告:2013年3月29日下午1:37:32 org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleHttpRequestMethodNotSupported警告:不支持请求方法'POST'。否。。再次警告,但是..复制相同的代码并进行教育(上面的代码我在model AttributeBute中包括EducationalForm)…因此在那段时间内工作得很好..但是专业人员不工作也可以在Professional的前面加一个斜杠,像这样/Professional,或者我可以使用get方法发送以返回ModelAndView函数。
@RequestMapping(value = "proffessional", method = RequestMethod.POST)
public @ResponseBody
String proffessionalDetails(
@ModelAttribute UserProfessionalForm professionalForm,
BindingResult result, Model model) {
UserProfileVO userProfileVO = new UserProfileVO();
userProfileVO.setUser(sessionData.getUser());
userService.saveUserProfile(userProfileVO);
model.addAttribute("PROFESSIONAL", professionalForm);
return "Your Professional Details Updated";
}
@RequestMapping(value = "proffessional", method = RequestMethod.POST)
public @ResponseBody
String forgotPassword(@ModelAttribute("PROFESSIONAL") UserProfessionalForm professionalForm,
BindingResult result, Model model) {
UserProfileVO userProfileVO = new UserProfileVO();
userProfileVO.setUser(sessionData.getUser());
userService.saveUserProfile(userProfileVO);
model.addAttribute("professional", professionalForm);
return "Your Professional Details Updated";
}
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />