Java 正在使用自己的方法结果再次调用Spring控制器方法
这是我的控制器:Java 正在使用自己的方法结果再次调用Spring控制器方法,java,spring-mvc,request-mapping,Java,Spring Mvc,Request Mapping,这是我的控制器: @Controller @RequestMapping("/area") public class AreaController { @RequestMapping("/{id}") public String getPage(@PathVariable("id") int id){ return "asd3333"; } } 这就是当我访问http:/
@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]
我测试了这个随机返回只是为了说明发生了什么。。。
首先使用请求中的@PathVariable=1调用该方法,然后紧接着,无论方法结果如何,都会再次调用该方法,在本例中,该方法尝试传递@PathVariable=asd3333
我不知道发生了什么事,请帮忙,听起来确实很奇怪。我将从一个问题开始
@RequestMapping("/{id}")
public String getPage(@PathVariable("id") int id){
return "asd3333";
}
是否需要为所有方法类型Get、Post、Delete等调用此方法。。。。如果没有,请尝试使用特定的方法调用进行限制
前
明白了
还可以将其添加到方法中,因为您将返回一个简单字符串
@RequestMapping("/{id}")
@ResponseBody
public String getPage(@PathVariable("id") int id)
另外,如果您不打算将此API用作web MVC应用程序,而是作为rest API后端从@Controller切换到@RestController。听起来确实很奇怪。我将从一个问题开始
@RequestMapping("/{id}")
public String getPage(@PathVariable("id") int id){
return "asd3333";
}
是否需要为所有方法类型Get、Post、Delete等调用此方法。。。。如果没有,请尝试使用特定的方法调用进行限制
前
明白了
还可以将其添加到方法中,因为您将返回一个简单字符串
@RequestMapping("/{id}")
@ResponseBody
public String getPage(@PathVariable("id") int id)
另外,如果您不打算将此API用作web MVC应用程序,而是作为rest API后端从@Controller切换到@RestController。也许,您打算使用@RestController而不是@Controller。第一步始终是将记录器设置为org.springframework.web:DEBUG并发布浏览器的网络选项卡。也许,您打算使用@RestController而不是@controller第一步总是将记录器设置为org.springframework.web:DEBUG并发布浏览器的“网络”选项卡。几年前,@GetMapping通常优先于method=GET。是的,“@ResponseBody”解决了这个问题。最初我试图用thymeleaf呈现页面,所以我使用了“@Controller”。我忘了把thymeleaf dependencie放进去,这就是为什么它不能只使用ModelAndView返回,而不使用'@ResponseBody'。感谢几年前,@GetMapping通常比method=GET更受欢迎。是的,@ResponseBody解决了这个问题。最初我试图用thymeleaf呈现页面,所以我使用了“@Controller”。我忘了把thymeleaf dependencie放进去,这就是为什么它不能只使用ModelAndView返回,而不使用'@ResponseBody'。谢谢