【问题标题】:Request mapping and static fields请求映射和静态字段
【发布时间】:2021-01-07 08:18:30
【问题描述】:

我正在尝试为@RequestMapping 注释设置值,如下所示: @RequestMapping(value = VALUE)

@RequestMapping(value = VALUE)
public class SomeClass {
  public final static String value = randomValue();
  public static randomValue() {
     return "some random stuff here";
  }
}

现在,我注意到这是不合法的,因为我收到了这个错误:

属性值必须是常量

谁能解释一下为什么会这样?

【问题讨论】:

  • 你不能有随机值作为端点

标签: java spring-boot compiler-errors static request-mapping


【解决方案1】:

属性值必须是常量

仅仅意味着您不能为端点分配变量或一些随机值,例如VALUE。您应该提供一个或多个常量字符串,如下例所示:

@RequestMapping(value = "/value")
public class SomeClass {}

@RequestMapping("/value")
public class SomeClass {}

@RequestMapping(value = {"/value", "/"})
public class SomeClass {}   

【讨论】:

  • 您可以使用public final static String value = "some random value" 并工作。为什么它不适用于 public final static String value = randomValue();
  • 您应该删除 final 关键字然后它才会起作用。当你将一个变量声明为 final 时,它应该有一个常量值
  • 删除final 是行不通的,因为@RequestMapping 需要常量。
  • @DonatoAmasa,所以,你是说public final static String VALUE = randomValue(); 不是常数?
  • 我指的是SomeClass类上声明的变量value
猜你喜欢
  • 2017-09-10
  • 2017-02-21
  • 1970-01-01
  • 1970-01-01
  • 2012-06-06
  • 2015-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多