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

时间:2017-10-17 20:11:07

标签: spring spring-mvc thymeleaf spring-el

我正在与Spring和Thymeleaf合作。 我需要从当前网址中删除一个参数,我在视图中执行类似的操作:

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

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

enter image description here

有没有办法从SpEL传递真正的null

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

1 个答案:

答案 0 :(得分:2)

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

urlBuilder.replaceQueryParam('page')