使用 VTL 速度模板迭代地图。骆驼

Iterate a map with VTL velocity template. Camel

提问人:jorgeglopez 提问时间:3/17/2023 最后编辑:jorgeglopez 更新时间:3/17/2023 访问量:49

问:

我有这种类型的地图,但我无法在速度模板中打印它。这是针对 SOAP 服务的

{DATOS_CONTACTO=[{TIPO_DOCUMENTO=CC, NUMERO_DOCUMENTO=1525250, COD_DEPARTAMENTO=10, COD_MUNICIPIO=222, DIR_RESIDENCIA=CL 4A 3 52, TELEFONO=0, CELULAR=325252467, [email protected]}], DATOS_PARENTESCO=[{PARENTESCO=Hijos, DOCUMENTO=1052986, TIPODOC=1}, {PARENTESCO=Hijos, DOCUMENTO=1035252, TIPODOC=5}]}

目标是遍历地图并打印其值 不显示值。我试图得到结果并使用 foreach 进行迭代

#foreach( $row in ${body} )
#if($row['DATOS_PARENTESCO']
#set ($foo = ($row["PARENTESCO"]))
<ns1:dato_parentesco>
<ns3:tipo_parentesco>#if($foo == "Conyuge")1 #elseif ($foo == "Compañero(a)")2 #elseif($foo =="Hijos")3 #elseif($foo == "Padres")4 #elseif($foo == "Otros")5 #else#end</ns3:tipo_parentesco>
<ns3:tipo_doc_cotizante>#if(!$row["TIPODOC"])#{else}$row["TIPODOC"]#end</ns3:tipo_doc_cotizante>
<ns3:num_doc_cotizante>#if(!$row["DOCUMENTO"])#{else}$row["DOCUMENTO"]#end</ns3:num_doc_cotizante>
</ns1:dato_parentesco>
#end
if($row['DATOS_CONTACTO'])
<ns1:datos_contacto>
<ns3:depto_residencia>#if(!$row["COD_DEPARTAMENTO"])#{else}$row["COD_DEPARTAMENTO"]#end</ns3:depto_residencia>
<ns3:municipio_residencia>#if(!$row["COD_MUNICIPIO"])#{else}$row["COD_MUNICIPIO"]#end</ns3:municipio_residencia>
<ns3:direccion_residencia>#if(!$row["DIR_RESIDENCIA"])#{else}$row["DIR_RESIDENCIA"]#end</ns3:direccion_residencia>
<ns3:telefono_residencia>#if(!$row["TELEFONO"])#{else}$row["TELEFONO"]#end</ns3:telefono_residencia>
<ns3:telefono_movil>#if(!$row["CELULAR"])#{else}$row["CELULAR"]#end</ns3:telefono_movil>
<ns3:correo_electronico>#if(!$row["EMAIL"])#{else}$row["EMAIL"]#end</ns3:correo_electronico>
</ns1:datos_contacto>
#end
#end
java apache-camel apache-velocity velocity-template-language

评论

0赞 Pasi Österman 3/17/2023
你至少错过了第一个 if 之后和第二个 if 之前的右括号。也许尝试在编辑器中打开模板,例如带有 Velocity 模板插件的 VSCode,其中包含语法突出显示,以查看是否还有更多错误。#

答: 暂无答案