当前位置: 首页 > 知识库问答 >
问题:

如何用spring正确管理路径变量

史钊
2023-03-14

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

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

@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

共有1个答案

屈昊天
2023-03-14

Spring支持不同的方法来映射从url到方法参数:请求参数和路径变量

>

  • 请求参数取自URL查询参数(以及请求体,例如http-POST请求)。标记应从请求参数取值的java方法参数的注释是@requestparam

    路径变量(有时称为路径模板)是url-path的一部分。标记应从请求参数取值的java方法参数的注释是@pathvariable

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

  •  类似资料:
    • 我有一个有一些订单的客户列表,我把他们都显示在一个表中。我添加了一个按钮,以便删除每个订单,如果需要的话。 当我试图删除一个特定的订单时,我会得到以下错误 未能将类型“java.lang.String”的值转换为所需类型“java.lang.Long”;嵌套异常是java.lang.NumberFormatException:对于输入字符串:“{cid}(cid=${customer.id})”

    • 这让我很困惑。而不是使用一个路径变量值的正确URLhttp://somedomain.com:8080/someWebApp/essays/main/student/25/activity/add“(其中25是路径变量{code>{studentId}}的值)我在我的URL中得到这个值:”http://somedomain.com:8080/someWebApp/essays/main/stude

    • 谁能建议我该怎么做才能绕过这个问题?我以为Spring会把第一个破折号之前的任何东西作为ID,把后面的任何东西作为名称,但事实并非如此。 如果我使用/product/1-name执行GET,它工作得很好。如果path变量包含破折号,这似乎是一种奇怪的行为。 谢谢

    • 我尝试执行一个jar xuggle-xuggler.jar,但出现以下错误(我在jar目录中使用java-jar命令执行): 清单-版本:1.0 Ant-版本:Apache Ant 1.8.2 创建人:1.6.0_23-B23(Sun Microsystems Inc.) 实施-供应商:www.xuggle.com 实施-标题:xuggle-xuggler 实施-版本:5.4.0 主类:com.x

    • 我正试图在Kubernetes(托管在Google Kubernetes引擎中)中为我的Java Spring应用程序设置自动缩放。我面临两个问题: > Spring应用程序在开始时使用了大量cpu(大约250mCPU*,但有时甚至是500mCPU),这实际上打破了自动缩放,因为该应用程序的某些实例在超过或少于1分钟后(Spring上下文启动等),仅使用50mCPU。因为在某些应用程序使用少量mC

    • 我知道有很多关于JAVA_HOME的问题,我以前当然也研究过它。我多年来一直在设置和运行java代码。 我认为libgdx需要一个jdk bin的路径,而不是一个jre bin。当我试图创建一个小测试文件时,我收到了以下错误: 错误:JAVA_HOME设置为无效目录:C:\Program Files\Java\JRE7\bin java_home=c:\program files\java\jre