Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我能';t使用RequestMethod.PUT?始终存在HTTP状态405-请求方法';邮政';不支持_Java_Spring_Rest_Spring Mvc - Fatal编程技术网

Java 为什么我能';t使用RequestMethod.PUT?始终存在HTTP状态405-请求方法';邮政';不支持

Java 为什么我能';t使用RequestMethod.PUT?始终存在HTTP状态405-请求方法';邮政';不支持,java,spring,rest,spring-mvc,Java,Spring,Rest,Spring Mvc,@控制器 @请求映射(value=“/restaurant”) 公共类ConsumerChangeInfoController{ 私有ConsumerChangeInfoService ConsumerChangeInfoService; 私人用户登录服务用户登录服务; @RequestMapping(value=“/consumerInfo”,method=RequestMethod.PUT) 公共字符串changeInfo(ChangeInfoDto ChangeInfoDto、HttpSe

@控制器
@请求映射(value=“/restaurant”)
公共类ConsumerChangeInfoController{
私有ConsumerChangeInfoService ConsumerChangeInfoService;
私人用户登录服务用户登录服务;
@RequestMapping(value=“/consumerInfo”,method=RequestMethod.PUT)
公共字符串changeInfo(ChangeInfoDto ChangeInfoDto、HttpSession会话、HttpServletRequest请求){
字符串路径=session.getServletContext().getRealPath(“/images/headgrait”);
字符串文件名=changeInfoDto.getChooseHeadFile().getOriginalFilename();
字符串扩展名=文件名
.substring(fileName.lastIndexOf(“.”+1);
String newFileName=String.valueOf(System.currentTimeMillis())
+“+”扩展名;
File targetFile=新文件(路径,新文件名);
如果(!targetFile.exists()){
targetFile.mkdirs();
}
试一试{
changeInfoDto.getChooseHeadFile().transferTo(targetFile);
}捕获(例外e){
e、 printStackTrace();
}
字符串savePath=request.getContextPath()+“/images/head肖像/”+newFileName;
consumerChangeInfoService.updateInfo((Consumer)session.getAttribute(“loginUser”),changeInfoDto,savePath);
Consumer Consumer=consumerLoginService.consumerLogin((LoginConsumerDto)session.getAttribute(“LoginConsumerDto”);
session.setAttribute(“登录用户”,消费者);
返回“重定向:索引”;

}
您需要修复
控制器中的
方法

您的控制器API配置为
PUT

 @RequestMapping(value = "/consumerInfo",method = RequestMethod.PUT)
    public String changeInfo(ChangeInfoDto changeInfoDto, HttpSession session, HttpServletRequest request){
因此,相反,要做到这一点

@RequestMapping(value = "/consumerInfo",method = RequestMethod.POST)
    public String changeInfo(ChangeInfoDto changeInfoDto, HttpSession session, HttpServletRequest request){

因为,
HTML
form只对
method
POST或GET有效,我已经将input type=“hidden”name=“\u method”value=“PUT”change
method=“POST”
添加到
method=“PUT”
然后我得到HTTP状态405-请求方法“get”不受支持405错误可能是
changeInfo(…)
方法末尾重定向的结果。您有处理
重定向:index
映射的方法吗(或者在某个地方有一个映射来处理重定向中
index
GET
?我有另外两个方法来处理重定向:索引映射,但它的url是不同的。如何更改它们?然后我得到HTTP状态405-请求方法“GET”不受支持。可能是因为使用tomcat7.0?没有HTML表单方法仅对POST和GET有效方法。如果将method=“put”设置为simple,则表示未定义方法并考虑GET。我已更新了我的答案。如果不想更改控制器,则需要使用ajax而不是表单submit,但当存在输入type=“hidden”时,springMVC可以处理RequestMethod“put”name=''u方法'value='put',您的表单方法是POST还是GET?