다른 변수에서 변수를 할당하려고합니다. 내 코드는이 ctg
변수가 단지 ctgroutes['227..257-TPPMD04X02']
는 실제로 문자열 자체를 평가하지 평가하고있다, 그러나이다른 변수에서 변수 할당
<#macro ctglink c rhs x y z m e b>
<#assign ctg>
<#if ctgroutes["${y}..${x}-${m}"]??>ctgroutes['${y}..${x}-${m}']
<#elseif ctgroutes["${x}..${y}-${m}"]??>ctgroutes['${x}..${y}-${m}']
<#else>{}</#if>
</#assign>
것 같습니다.
나는 ?eval
과 ?interpret
을 시도했으며, 다른 매우 고질적 인 것들을 사용하여 작동하지 않게되었습니다. {}
도 문자열입니다
기본적으로 이전 함수 인 eval()
처럼 작동하도록 assign 함수가 필요합니다. 데이터의 상태에서 키가 파생 된 맵의 값에 액세스하려고하므로 키를 평가하지 않고 내 맵을 쿼리하는 쉬운 방법이 표시되지 않습니다.
업데이트 :
에 의해 발생 : freemarker.core.InvalidReferenceException
- 은 내가
elseif
- 어느 쪽이든, 나는
<#assign ctg = ctgroutes["${y}..${x}-${m}"]!ctgroutes["${x}..${y}-${m}"]>
는하지만 다음과 같은 오류가 시도 거기에 포함하는 것을 잊었다 : 다음은 null 또는 누락 값을 계산했습니다 : ==> ctgroutes [ "$ {y} .. $ {x} - $ {m}"! ctgroutes [ "$ {x} .. $ {y} - $ {m} "] [템플리트"RouteCompare-WptTable.ftlh "5 행 24 열]
나는 가능한 한 보이지 않는 그러나, 단지 빈 맵을 반환하는 null
결과를 싶습니다
Caused by: java.lang.RuntimeException: freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> ctgroutes["${y}..${x}-${m}"]!ctgroutes["${x}..${y}-${m}"] [in template "RouteCompare-WptTable.ftlh" at line 5, column 24]
그러니까 기본적으로, 내 목표는 내가 1 3의 걸릴 수있는 변수를 할당 할 필요가있다 값 :
- ctgroutes [ "$ {} Y .. $ X는 {} - $ {m}"] //는
- ctgroutes [ "$ null이 아니고 가정 {X} $ {.. y} - $ {m} "] // NULL이 아닌 것으로 가정합니다
- 는 {} 빈지도
그렇게 할 수있는 가장 좋은 방법은 무엇입니까 //? 난 당신이 달성하고자하는 것을 잘 이해한다면
제안이 제대로 작동하지 않아서 제 질문을 업데이트했습니다. –
다시 업데이트했습니다 ... '!'{} '이 아니라'! {}'를 끝내고 싶습니다. 진짜 빈지도를 원해. – ddekany