spring控制器方法

e5nqia27  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(475)

这是我的控制器:

@Controller
@RequestMapping("/area")
public class AreaController {

    @RequestMapping("/{id}")
    public String getPage(@PathVariable("id") int id){
        return "asd3333";
    }

}

这就是我访问http://localhost:8080/面积/1:
无法将“java.lang.string”类型的值转换为所需类型“int”;嵌套异常为java.lang.numberformatexception:对于输入字符串:“asd3333”]
我测试了这个随机返回只是为了说明发生了什么。。。首先用请求中的@pathvariable=1调用该方法,然后在调用之后,用方法的结果再次调用,在本例中,它尝试传递@pathvariable=“asd3333”。
我不知道发生了什么事,请帮忙

hi3rlvi2

hi3rlvi21#

听起来确实很奇怪。我先问一个问题

@RequestMapping("/{id}")
public String getPage(@PathVariable("id") int id){
    return "asd3333";
}

是否需要为所有方法类型(get、post、delete等)调用此方法。如果没有,请尝试使用特定的方法调用进行限制。
前任

@RequestMapping(value = "/{id}", method = POST)

明白了。
还可以将其添加到方法中,因为您将返回一个简单的字符串

@RequestMapping("/{id}")
@ResponseBody
public String getPage(@PathVariable("id") int id)

另外,如果您不打算将此api用作webmvc应用程序,而是作为restapi后端,请从@controller切换到@restcontroller。

相关问题