Scala和SpringBoot Controller为http get添加一个Option RequestParameter

时间:2019-06-20 10:02:26

标签: scala spring-boot http-request-parameters

这是我的控制器类中的http get端点:

serverless.yml

我有这种行为:

  • 如果未在网址中指定myParam,则表明我的myParam不存在
  • 如果myParam在url中,则返回HTTP 500错误,并且看来Spring Boot无法管理Scala Option [Long]参数。调试我看到错误发生在输入控制器的方法之前。

否则,如果我使用Long而不是Option [Long]修改控制器:

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")
    }
}

我有这种行为:

  • 如果在URL中指定了myParam,则控制器将记录该值
  • 如果未指定,则有一个(java.lang.NullPointerException:null)。调试我看到错误发生在输入控制器的方法之前。

正确的方法是什么?

0 个答案:

没有答案