Spring 使用自己的方法结果再次调用控制器方法
Spring Controller method being called again with the own method result
这是我的控制器:
@Controller
@RequestMapping("/area")
public class AreaController {
@RequestMapping("/{id}")
public String getPage(@PathVariable("id") int id){
return "asd3333";
}
}
这是我访问 http://localhost:8080/area/1:
时得到的结果
- 无法将类型 'java.lang.String' 的值转换为所需类型 'int';嵌套异常是 java.lang.NumberFormatException:对于输入字符串:“asd3333”]
我测试了这个随机 return 只是为了展示发生了什么......
该方法首先使用请求中的 @PathVariable = 1 进行调用,然后紧随其后,无论方法结果如何,都会再次调用该方法,在这种情况下,它会尝试通过@PathVariable = "asd3333".
我不知道到底发生了什么,请帮忙
听起来确实很奇怪。我将从一个问题开始
@RequestMapping("/{id}")
public String getPage(@PathVariable("id") int id){
return "asd3333";
}
是否需要为所有方法类型(Get、Post、Delete、...)调用此方法。如果没有尝试限制特定的方法调用。
前
@RequestMapping(value = "/{id}", method = POST)
明白了。
还要将此添加到方法中,因为您 return 一个简单的字符串
@RequestMapping("/{id}")
@ResponseBody
public String getPage(@PathVariable("id") int id)
此外,如果您不打算将此 API 用作 Web MVC 应用程序,而是用作休息 API 后端从 @Controller 切换到 @RestController。
这是我的控制器:
@Controller
@RequestMapping("/area")
public class AreaController {
@RequestMapping("/{id}")
public String getPage(@PathVariable("id") int id){
return "asd3333";
}
}
这是我访问 http://localhost:8080/area/1:
时得到的结果- 无法将类型 'java.lang.String' 的值转换为所需类型 'int';嵌套异常是 java.lang.NumberFormatException:对于输入字符串:“asd3333”]
我测试了这个随机 return 只是为了展示发生了什么...... 该方法首先使用请求中的 @PathVariable = 1 进行调用,然后紧随其后,无论方法结果如何,都会再次调用该方法,在这种情况下,它会尝试通过@PathVariable = "asd3333".
我不知道到底发生了什么,请帮忙
听起来确实很奇怪。我将从一个问题开始
@RequestMapping("/{id}")
public String getPage(@PathVariable("id") int id){
return "asd3333";
}
是否需要为所有方法类型(Get、Post、Delete、...)调用此方法。如果没有尝试限制特定的方法调用。
前
@RequestMapping(value = "/{id}", method = POST)
明白了。
还要将此添加到方法中,因为您 return 一个简单的字符串
@RequestMapping("/{id}")
@ResponseBody
public String getPage(@PathVariable("id") int id)
此外,如果您不打算将此 API 用作 Web MVC 应用程序,而是用作休息 API 后端从 @Controller 切换到 @RestController。