我正在与Spring和Thymeleaf合作。 我需要从当前网址中删除一个参数,我在视图中执行类似的操作:
urlBuilder=${T(org.springframework.web.servlet.support.ServletUriComponentsBuilder).fromCurrentRequest()},
currentUrl=${urlBuilder.replaceQueryParam('page',null).build()
但是,null
值实际上不为null。如果我调试该行,该参数的值不是null而是空对象,这里是截图:
有没有办法从SpEL传递真正的null
?
构建器组件的行为在两种情况下略有不同,因为当您传递null时,将删除查询参数。在给定的示例中,查询参数保留在URL上。
答案 0 :(得分:2)
您正在调用 varargs 方法。 null被包装到一个带有一个null元素的数组中(不被认为是空的)。解决方案是省略null参数:
urlBuilder.replaceQueryParam('page')