簡體   English   中英

RequestParam.defaultValue值

[英]RequestParam.defaultValue value

我正進入(狀態:

The value for annotation attribute RequestParam.defaultValue must be a constant expression

但我已將MAX_LONG_AS_STRING聲明為常量(靜態最終):

private static final String MAX_LONG_AS_STRING = Long.toString(Long.MAX_VALUE);

@RequestMapping(method = RequestMethod.GET)
public String spittles(@RequestParam(value = "max", defaultValue = MAX_LONG_AS_STRING) long max, 
                       @RequestParam(value = "count", defaultValue = "20") int count, 
                       Model model) {
    model.addAttribute("spittleList", spittleRepository.findSpittles(Long.MAX_VALUE, 20));
    return "spittles";
}

正如chrylis在他的答案注釋中所說的那樣,需要編譯時常量。 這可能不是您正在尋找的解決方案,但要解決手頭的問題, Long.MAX_VALUE等於9223372036854775807

所以你可以這樣做:

@RequestMapping(method = RequestMethod.GET)
public String spittles(@RequestParam(value = "max",defaultValue = "9223372036854775807") Long max,
                           @RequestParam(value = "count", defaultValue = "20") int count,
                           Model model){
        model.addAttribute("spittleList",spittleRepository.findSpittle(max,count));
        return "spittles";
}

它不是編譯時常量; 直到運行時才評估Long.toString() 您需要內聯它(盡管通常最好省略它,如果可能的話,新的QueryDSL支持可能會使構建存儲庫查詢更簡單)。

關於什么:

@RequestParam(defaultValue = Long.MAX_VALUE + "") long max

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM