2017-10-17 18 views
2

저는 Spring과 Thymeleaf와 함께 일하고 있습니다. null 값이 실제로 null이 아닌 것을,

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

그러나 : 내가있는 현재의 URL에서 하나 개의 매개 변수를 제거해야 내가보기에이 같은 일을하고있다. 내가 그 라인을 디버깅 할 경우, 해당 매개 변수의 값은 여기에, NOT NULL하지만 빈 개체입니다 스크린 샷입니다 : SpEL을에서 실제 null을 통과 할 수있는 방법이

enter image description here

거기는?

null을 전달하면 쿼리 매개 변수가 제거되므로 두 경우 모두 빌더 구성 요소의 동작이 약간 다릅니다. 주어진 예제에서 query param은 URL에 머물러 있습니다.

답변

2

가변 개수 메서드를 호출하고 있습니다. null는 1 개의 null 요소를 가지는 배열에 랩됩니다 (공백으로 간주되지 않는다). 이 솔루션은 널 매개 변수를 생략하는 것입니다

urlBuilder.replaceQueryParam('page') 
+0

내가 통과 어디 테스트 자바 코드에 의해 misleaded했다 .... 지금은 그렇게 바보가 된 기분을'null'가 null 따라서 SpEL을에서 동일한 작업을 수행하고 싶어 참이었다. didnt는 오만한 주장에 대해 전혀 생각하지 않는다. 고맙습니다! – Antoniossss