我有一个简单的spring控制器,它基本上根据一些查询参数返回消息。我使用@Requestparam批注获取查询参数。 @Requestparam的defaultValue属性需要一个常量表达式。您会注意到,我使用常量来设置参数值。我想了解的是为什么我不能在下面使用:
private static final String LONG_MAX_VALUE = Long.toString(Long.MAX_VALUE)
在以下情况下应计算为常量字符串:
private static final String LONG_MAX_VALUE = "9223372036854775807"
就像魅力一样。请注意,该值本身无关紧要。我应该认为两者都会得出一个常数表达式,或者我想念什么?
// simple controller in spring MVC that returns messages based on query parameters
// private static final String LONG_MAX_VALUE = Long.toString(Long.MAX_VALUE);
private static final String LONG_MAX_VALUE = "9223372036854775807";
@GetMapping()
public String getMessages(@RequestParam(name = "max", defaultValue = LONG_MAX_VALUE) Long max,
@RequestParam(name = "count", defaultValue = "20") int count, Model model) {
model.addAttribute("messages", messageRepository.findMessages(max, count));
return "messages";
}
我使用
时遇到的错误 private static final String LONG_MAX_VALUE = Long.toString(Long.MAX_VALUE)
是
“注释属性RequestParam.defaultValue的值必须为常量表达式”