2016-10-06 3 views
0
#set($a = 10) 
#set($b = 123) 
#set($c = 456) 

// If query string "q1" is not available then set $q1,$q2 to default values 
#if($!input.params('q1') && $input.params('q1').empty) 
    #set($q1 = $b) 
    #set($q2 = $c) 

// If query string "q1" available but not "q2" then add some value to $q1 and set it as $q2 
#elseif($!input.params('q2') && $input.params('q2').empty) 
    #set($q1 = $input.params('q1')) 
    #set($q2 = $a + $q1) 

// If both query strings available then set them 
#else 
    #set($q1 = $input.params('q1')) 
    #set($q2 = $input.params('q2')) 
#end 

위의 코드는 통합 요청 본문 매핑 템플릿에서 3 중입니다. 두 번째 경우에만 q1이 몇 가지 숫자로 지정되어있는 경우 (0120), $ q2은 22 (12 + 10)가되어야하지만 1210으로 변경됩니다. 이러한 $ q1 및 $ q2는 문자열이기 때문입니다 그리고 그들은 결합하고 있습니다.통합 요청 본문 매핑 템플릿에서 쿼리 문자열을 int로 변환하는 방법은 무엇입니까?

그래서 나는 this 답변을 사용하여 캐스팅을 시도했지만 내부 서버 오류가 발생합니다.

문자열을 정수로 그리고 어떻게 정수로 변환 할 수 있습니까?

답변

0

다른 질문에서 주어진 해결책은 나를 위해 작동합니다. 시도해보십시오 (if-else의 두 번째 부분).

#set($a = 10) 
#set($q1 = $input.params('q1')) 
#set($Integer = 0) 
#set($q2 = $Integer.parseInt($q1) + $a) 
{ 
    "params" : { 
    "a" : "$a", 
    "q1" : "$q1", 
    "q2" : "$q2" 
    } 
} 
+0

답변을 주셔서 감사합니다. – bravokeyl

+0

'구성 오류로 인해 실행하지 못했습니다 : 요청을 변환 할 수 없습니다'메시지가 표시되는데 여전히 500 오류입니다. – bravokeyl

+0

메소드 요청에 'q1'매개 변수를 추가하지 않으셨습니까? – Balaji