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

标签 spring spring-mvc thymeleaf spring-el

我正在使用 Spring 和 Thymeleaf。 我需要从当前网址中删除一个参数,并且我正在 View 中执行类似以下操作:

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

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

enter image description here

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

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

最佳答案

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

urlBuilder.replaceQueryParam('page')

关于spring - 是否可以在 ${...} 表达式中传递 NULL 作为参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46798410/

相关文章:

Tomcat 似乎没有在我的 WEB-INF/lib 文件夹中提取 jar

java - 外键仅适用于 Spring JPA 项目中的某些模型

java - MediaType HTML 的 HttpMediaTypeNotAcceptableException

java - 在 Spring 实现授权码授予时出现的问题

用于引起/包装异常的 Spring ExceptionHandler

javascript - 当列数据溢出时,如何使 jquery 数据表中的单列可滚动?

java - Spring中Thymeleaf异常解析文档

java - 如何检查 thymeleaf 中表字段的类类型?

java - 为加载到 Spring 的 Props 文件中的属性自动修剪尾随空白

spring - Spring Boot 应用程序中每个端点 uri 的 HTTP 指标