我对Java还是陌生的,但我仍然想围绕它的许多概念来思考。
现在在我的应用程序中,该应用程序从外部api提取数据。我目前正在尝试对路径进行硬编码,以确保得到期望的响应(这是一个临时交互,最终,我希望应用程序是无状态的。如果我在@PathVariable中传递硬编码值在代码上方定义的变量中,我的控制器无法读取该值。
我应该在哪里放置硬编码的值,我是否以正确的方式定义它?
代码:
String identificationCode ="abcd";
@RequestMapping(value ="/download/{identificationCode}", method = RequestMethod.GET)
String downloadDocument(@PathVariable(value="identificationCode") String identificationCode) {
.
.
.
}
答案 0 :(得分:0)
value
是名称的别名。这意味着@PathVariable(value="identificationCode")
指定此参数的变量名称,但不指定值。 See
答案 1 :(得分:0)
这里"/download/{identificationCode}"
identificationCode
不会被在那里声明的String值插值:
String identificationCode ="abcd";
它将仅生成字符串:"/download/{identificationCode}"
。
您可以编写:
@RequestMapping(value ="/download/"+identificationCode, method = RequestMethod.GET)
,但它也不起作用,因为identificationCode
不是常数表达式。
所以您想要的只是:
@RequestMapping(value ="/download/abc", method = RequestMethod.GET)
如果您不需要在其他地方引用String,请使用这种方式。
否则,可以将identificationCode
声明为常量表达式(并且您也可以通过static
来声明):
final static String identificationCode ="abcd";
您可以这样使用它:
@RequestMapping(value ="/download/"+identificationCode, method = RequestMethod.GET)
答案 2 :(得分:0)
将{identificationCode}替换为@RequestMapping(value =“ / download / {identificationCode}”)中的硬代码值。稍后,当您需要路径的动态性质时,可以按照当前编码的方式进行操作。