Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @PathVariable(“ownerId”)字符串所有者和@PathVariable字符串所有者之间的差异_Java_Spring_Spring Mvc_Path Variables - Fatal编程技术网

Java @PathVariable(“ownerId”)字符串所有者和@PathVariable字符串所有者之间的差异

Java @PathVariable(“ownerId”)字符串所有者和@PathVariable字符串所有者之间的差异,java,spring,spring-mvc,path-variables,Java,Spring,Spring Mvc,Path Variables,@PathVariable(“ownerId”)字符串所有者与Spring MVC中的@PathVariable字符串所有者之间是否有任何区别 我已经谈过了,但我不清楚这个概念 通过分析uri参数是否与变量名具有相同的名称,我发现了一个区别,然后您可以直接将其存储在变量中。这是否正确,或者您可以发布与此相关的任何其他信息 @GetMapping("/owners/{ownerId}") public String findOwner(@PathVariable("ownerId") String

@PathVariable(“ownerId”)字符串所有者与
Spring MVC
中的
@PathVariable字符串所有者之间是否有任何区别

我已经谈过了,但我不清楚这个概念

通过分析
uri参数
是否与
变量名
具有相同的名称,我发现了一个区别,然后您可以直接将其存储在变量中。这是否正确,或者您可以发布与此相关的任何其他信息

@GetMapping("/owners/{ownerId}")
public String findOwner(@PathVariable("ownerId") String theOwner, Model model) {
// implementation omitted
}

@GetMapping("/owners/{ownerId}")
public String findOwner(@PathVariable String ownerId, Model model) {
// implementation omitted
}

唯一的区别是,第一个选项允许您更改方法中的参数名称,您可以使用
Owner
而不是
ownerId


例如,如果您有一个具有相同名称的类成员
ownerId

,这可能很有用。唯一的区别是第一个选项允许您更改方法中的参数名称,您可以使用
所有者
而不是
ownerId


例如,如果您在您提到的文档页面中有一个具有相同名称的类成员
ownerId

,则这可能非常有用:

URI模板“/owners/{ownerId}”指定变量名`ownerId'。当控制器处理此请求时,ownerId的值被设置为URI适当部分中的值。例如,当/owners/fred的请求传入时,ownerId的值为fred


因此,如果不想指定@PathVariable的值,请使用与方法参数和路径模板相同的名称

从您提到的文档页面:

URI模板“/owners/{ownerId}”指定变量名`ownerId'。当控制器处理此请求时,ownerId的值被设置为URI适当部分中的值。例如,当/owners/fred的请求传入时,ownerId的值为fred

因此,如果不想指定@PathVariable的值,请使用与方法参数和路径模板相同的名称

Spring MVC非常清楚它的工作原理:

要处理
@PathVariable
注释,Spring MVC需要按名称查找匹配的URI模板变量。可以在注释中指定它:

@GetMapping("/owners/{ownerId}")
public String findOwner(@PathVariable("ownerId") String theOwner, Model model) {
    // implementation omitted
}
或者,如果URI模板变量名与方法参数名匹配,则可以忽略该细节。只要使用Java 8上的调试信息或
-parameters
编译器标志编译代码,Spring MVC就会将方法参数名称与URI模板变量名称相匹配:

@GetMapping("/owners/{ownerId}")
public String findOwner(@PathVariable String ownerId, Model model) {
    // implementation omitted
}
Spring MVC非常清楚它的工作原理:

要处理
@PathVariable
注释,Spring MVC需要按名称查找匹配的URI模板变量。可以在注释中指定它:

@GetMapping("/owners/{ownerId}")
public String findOwner(@PathVariable("ownerId") String theOwner, Model model) {
    // implementation omitted
}
或者,如果URI模板变量名与方法参数名匹配,则可以忽略该细节。只要使用Java 8上的调试信息或
-parameters
编译器标志编译代码,Spring MVC就会将方法参数名称与URI模板变量名称相匹配:

@GetMapping("/owners/{ownerId}")
public String findOwner(@PathVariable String ownerId, Model model) {
    // implementation omitted
}

不,没有。除非编译时没有参数名,否则在第二种情况下它将失败,因为无法解析path变量。文档中对此进行了很好的解释。不知道还能说些什么。。始终使用
PathVariable(“ownerId”)
,因为您不想引入错误,因为您忘记了一些编译器参数。不,没有。除非编译时没有参数名,否则在第二种情况下它将失败,因为无法解析path变量。文档中对此进行了很好的解释。不知道还能说些什么。。始终使用
PathVariable(“ownerId”)
,因为您不想引入错误,因为您忘记了一些编译器参数。