当前位置:  开发笔记 > 编程语言 > 正文

如何使用Spring正确管理PathVariables

如何解决《如何使用Spring正确管理PathVariables》经验,为你挑选了1个好方法。

我希望这不是一个简单的问题。我是Java Web服务世界的新手,似乎无法在控制器中访问PathVariables。我正在使用STS,并且没有抱怨我的语法错误。

比正确答案重要得多,我真的很想知道为什么这不起作用。

这是一些我无法使用的示例代码:

@RestController
public class TestController {

    @RequestMapping("/example")
    public String doAThing(
        @PathVariable String test
    ) throws MessagingException {
        return "Your variable is " + test;
    }
}

如果我像这样卷曲一下:

curl http://localhost:8080/example?test=foo

我收到以下答复:

{“时间戳”:1452414817725,“状态”:500,“错误”:“内部服务器错误”,“例外”:“ org.springframework.web.bind.MissingPathVariableException”,“消息”:“缺少URI模板变量'test '用于类型为String“,” path“:” / example“}的方法参数

我知道我已正确连接了其他所有设备,其他控制器也正常工作。

我觉得我这里一定缺少一些基本原理。

提前致谢。



1> prem kumar..:

如果使用路径变量,则它必须是URI的一部分。正如您没有在URI中提到的那样,而是在方法参数中使用的,spring尝试从路径URI中找出并分配该值。但是此路径变量不在路径URI中,因此抛出MissingPathVariableException。

这应该工作。

@RestController
public class TestController {

@RequestMapping("/example/{test}")
public String doAThing(
    @PathVariable String test
) throws MessagingException {
    return "Your variable is " + test;
}
}

而你的卷曲要求就像

curl http://localhost:8080/example/foo
//here the foo can be replace with other string values

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有