是否可以在 ${...} 表达式中将 NULL 作为参数传递?

Is it possible to pass NULL as argument in ${...} expression?

我正在使用 Spring 和 Thymeleaf。 我需要从当前 url 中删除一个参数,我正在做这样的事情:

urlBuilder=${T(org.springframework.web.servlet.support.ServletUriComponentsBuilder).fromCurrentRequest()},
currentUrl=${urlBuilder.replaceQueryParam('page',null).build()

然而,null 值实际上不是空的。如果我调试该行,该参数的值不是 null 而是一个空对象,这是屏幕截图:

有什么方法可以从 SpEL 传递真实的 null 吗?

构建器组件的行为在这两种情况下略有不同,因为当您传递 null 时,查询参数将被删除。在给定的示例中,查询参数保留在 URL.

您正在调用 varargs 方法。 null 被包装到一个包含一个 null 元素(不被视为空)的数组中。解决方法是省略空参数:

urlBuilder.replaceQueryParam('page')