Scala и SpringBoot Controller добавляют параметр RequestParameter для http get - PullRequest
0 голосов
/ 20 июня 2019

Это моя конечная точка http get в моем классе контроллера:

def getOperation(@RequestParam(name = "myParam", required = false) myParam: Option[Long]) = {
    myParam match {
        case Some(longValue) => log.info(longValue)
        case None => log.info("myParam is not present")
        case _ => log.info("myParam is not present")
    }
}

У меня такое поведение:

  • Если myParam не указан в URL, я зарегистрировал myParamотсутствует
  • Если myParam находится в URL-адресе, я вернул ошибку HTTP 500, и кажется, что при загрузке Spring не удается настроить параметр Scala Option [Long].Отладка Я вижу, что ошибка возникает перед вводом в методе контроллера.

В противном случае, если я изменю контроллер, используя Long, а не Option [Long]:

def getOperation(@RequestParam(name = "myParam", required = false) myParam: Long) = {
  log.info(longValue)

}

У меня есть такое поведение:

  • , если myParam указан в URL, контроллер записывает значение
  • , если оно не указано, у меня есть (java.lang.NullPointerException: null).Отладка Я вижу, что перед входом в метод контроллера происходит ошибка.

Какой правильный путь?

...