Serviços Online
Títulos de Atividade
Serviços Online
Ocorreu um erro ao processar o template.
The following has evaluated to null or missing:
==> xPathSelector.selectSingleNode(rootElement) [in template "20116#20152#33435" at line 132, column 58]
----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign QuandoTenhoDeRequerer = xPath... [in template "20116#20152#33435" at line 132, column 25]
---- 1<style> 2 .btn-primary.btn-service_request{ 3 min-width: 100px; 4 height: 45px; 5 padding: 0 15px; 6 border-radius:25px; 7 margin-top: 25px; 8 } 9 .btn-service_request-outter{ 10 text-align: center; 11 } 12 @media (min-width: 992px) { 13 .btn-service_request-outter{ 14 text-align: left; 15 } 16 .btn-primary.btn-service_request{ 17 min-width: 100px; 18 margin-top: 0; 19 } 20 .row-service_heading{ 21 display: -webkit-box; 22 display: -webkit-flex; 23 display: -ms-flexbox; 24 display: flex; 25 } 26 } 27</style> 28 29<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 30<#assign httpServletRequest = serviceContext.getRequest()> 31<#assign familyRedirect = "/servicos"> 32 33<#if !httpServletRequest.getParameter('articleId')??> 34 35 <div class="row" style="margin-top:20px;"> 36 <div class="col-md-10 col-md-offset-1" style="padding-top:20px;"> 37 38 <#if entries?has_content> 39 <#list entries as curEntry> 40 <#assign renderer = curEntry.getAssetRenderer() /> 41 <#assign className = renderer.getClassName() /> 42 43 <#if className == "com.liferay.journal.model.JournalArticle"> 44 <#assign journalArticle = renderer.getArticle() /> 45 <#assign document = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) /> 46 <#assign rootElement = document.getRootElement() /> 47 48 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Titulo']") /> 49 <#assign titulo = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 50 51 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Resumo']") /> 52 <#assign resumo = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 53 54 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Icon']") /> 55 <#assign icon = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 56 57 <div class="row" style="padding-bottom:15px;display: -webkit-box;display: -webkit-flex;display: -ms-flexbox;display: flex;"> 58 <div class="col-md-1"> 59 <#if (icon?trim?length > 0) > 60 <img style="width: 80px; height: 80px;" src="${icon}" alt="${titulo}"/> 61 <#else> 62 <div style="width: 80px; height: 80px;"></div> 63 </#if> 64 </div> 65 <div class="col-md-11" style="display:flex; align-items:center;"> 66 <div> 67 <a href="${familyRedirect}?articleId=${curEntry.getEntryId()}"><h4 style="margin:0;">${titulo}</h4></a> 68 <p style="margin-top:10px;">${resumo}</p> 69 </div> 70 </div> 71 </div> 72 73 </#if> 74 </#list> 75 </#if> 76 77 </div> 78 </div> 79 80<#else> 81 <#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 82 <#assign validArticleId = httpServletRequest.getParameter('articleId')?matches("\\d+")> 83 <#assign validEntryId = false> 84 85 <#if validArticleId> 86 <#assign articleId = httpServletRequest.getParameter('articleId')?number> 87 <#if assetEntryLocalService.fetchAssetEntry(articleId)??> 88 <#assign validEntryId = true> 89 <#assign entry = assetEntryLocalService.getEntry(articleId) /> 90 </#if> 91 </#if> 92 93 <#if validArticleId && validEntryId> 94 95 <div class="row"> 96 97 <#assign renderer = entry.getAssetRenderer() /> 98 <#assign className = renderer.getClassName() /> 99 100 <#if className == "com.liferay.journal.model.JournalArticle"> 101 <#assign journalArticle = renderer.getArticle() /> 102 <#assign document = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) /> 103 <#assign rootElement = document.getRootElement() /> 104 105 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Titulo']") /> 106 <#assign titulo = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 107 108 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Icon']") /> 109 <#assign icon = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 110 111 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Resumo']") /> 112 <#assign subtitulo = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 113 114 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='btnText']") /> 115 <#if xPathSelector.selectSingleNode(rootElement)?has_content > 116 <#assign btnText = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 117 <#else> 118 <#assign btnText =''> 119 </#if> 120 121 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='linkServico']") /> 122 <#assign linkServico = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 123 124 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='QuandoTenhoDeRequererPergunta']") /> 125 <#if xPathSelector.selectSingleNode(rootElement)?has_content > 126 <#assign QuandoTenhoDeRequererPergunta = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 127 <#else> 128 <#assign QuandoTenhoDeRequererPergunta =''> 129 </#if> 130 131 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='QuandoTenhoDeRequerer']") /> 132 <#assign QuandoTenhoDeRequerer = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 133 134 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='QuemPodeRequererPergunta']") /> 135 <#if xPathSelector.selectSingleNode(rootElement)?has_content > 136 <#assign QuemPodeRequererPergunta = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 137 <#else> 138 <#assign QuemPodeRequererPergunta =''> 139 </#if> 140 141 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='QuemPodeRequerer']") /> 142 <#assign QuemPodeRequerer = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 143 144 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='OndePossoRequererPergunta']") /> 145 <#if xPathSelector.selectSingleNode(rootElement)?has_content > 146 <#assign OndePossoRequererPergunta = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 147 <#else> 148 <#assign OndePossoRequererPergunta =''> 149 </#if> 150 151 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='OndePossoRequerer']") /> 152 <#assign OndePossoRequerer = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 153 154 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='documentacaoPergunta']") /> 155 <#if xPathSelector.selectSingleNode(rootElement)?has_content > 156 <#assign documentacaoPergunta = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 157 <#else> 158 <#assign documentacaoPergunta =''> 159 </#if> 160 161 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='documentacao']") /> 162 <#assign documentacao = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 163 164 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='QualOCustoPergunta']") /> 165 <#if xPathSelector.selectSingleNode(rootElement)?has_content > 166 <#assign QualOCustoPergunta = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 167 <#else> 168 <#assign QualOCustoPergunta =''> 169 </#if> 170 171 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='QualOCusto']") /> 172 <#assign QualOCusto = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 173 174 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='legislacaoPergunta']") /> 175 <#if xPathSelector.selectSingleNode(rootElement)?has_content > 176 <#assign legislacaoPergunta = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 177 <#else> 178 <#assign legislacaoPergunta =''> 179 </#if> 180 181 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='legislacao']") /> 182 <#assign legislacao = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 183 184 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='relatedServices']") /> 185 <#if xPathSelector.selectSingleNode(rootElement)?has_content > 186 <#assign relatedServices = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 187 <#else> 188 <#assign relatedServices =''> 189 </#if> 190 191 <div class="col-md-10 col-md-offset-1"> 192 <div style="padding-top:20px; padding-bottom:20px;"> 193 <div class="row row-service_heading"> 194 <div class="col-xs-12 col-md-1"> 195 <#if (icon?trim?length > 0) > 196 <img style="width: 80px; height: 80px;" src="${icon}" alt="${titulo}"/> 197 <#else> 198 <div style="width: 80px; height: 80px;"></div> 199 </#if> 200 </div> 201 <div class="col-xs-12 col-md-11" style="display:flex; align-items:center;"> 202 <div> 203 <h2 style="margin:0;">${titulo}</h2> 204 <h4 style="margin-top:10px">${subtitulo}</h4> 205 </div> 206 </div> 207 </div> 208 <div class="row"> 209 <div class="col-xs-12 col-md-1"> 210 </div> 211 <div class="col-xs-12 col-md-11 btn-service_request-outter"> 212 <#if (btnText?trim?length > 0) > 213 <a href="${linkServico}"><button class="btn-primary btn-service_request">${btnText}</button></a> 214 <#else> 215 <a href="${linkServico}"><button class="btn-primary btn-service_request"><@liferay.language key="portal.content.template.servico.executar"/></button></a> 216 </#if> 217 </div> 218 </div> 219 </div> 220 <div aria-multiselectable="true" class="row" style="margin-bottom:20px;"> 221 <div class="card" style="border: none; padding: 5px;"> 222 <div class="card-header"> 223 <p class="mb-0" style="padding-left: 20px; font-weight:bold;"> 224 <a id="titleOne" class="serviceQuestion" data-toggle="collapse" data-parent="#accordion" href="#itemOne" aria-expanded="true" aria-controls="itemOne"> 225 <i id="itemOneIcon" style="color:blue;" class="fa fa-arrow-circle-down" aria-hidden="true"></i> 226 ${(QuandoTenhoDeRequererPergunta?trim?length > 0)?then(QuandoTenhoDeRequererPergunta,'Quando tenho de requerer?')} 227 </a> 228 </p> 229 </div> 230 <div id="itemOne" class="collapse" role="tabpanel" aria-labelledby="headingOne" style="background-color:white;"> 231 <div class="card-block"> 232 ${QuandoTenhoDeRequerer} 233 </div> 234 </div> 235 </div> 236 <div class="card" style="border: none; padding: 5px;"> 237 <div class="card-header"> 238 <p class="mb-0" style="padding-left: 20px; font-weight:bold;"> 239 <a id="titleTwo" class="serviceQuestion" data-toggle="collapse" data-parent="#accordion" href="#itemTwo" aria-expanded="true" aria-controls="itemTwo"> 240 <i id="itemTwoIcon" style="color:blue;" class="fa fa-arrow-circle-down" aria-hidden="true"></i> 241 ${(QuemPodeRequererPergunta?trim?length > 0)?then(QuemPodeRequererPergunta,'Quem pode requerer?')} 242 </a> 243 </p> 244 </div> 245 <div id="itemTwo" class="collapse" role="tabpanel" aria-labelledby="headingOne" style="background-color:white;"> 246 <div class="card-block"> 247 ${QuemPodeRequerer} 248 </div> 249 </div> 250 </div> 251 <div class="card" style="border: none; padding: 5px;"> 252 <div class="card-header"> 253 <p class="mb-0" style="padding-left: 20px; font-weight:bold;"> 254 <a id="titleThree" class="serviceQuestion" data-toggle="collapse" data-parent="#accordion" href="#itemThree" aria-expanded="true" aria-controls="itemThree"> 255 <i id="itemThreeIcon"style="color:blue;" class="fa fa-arrow-circle-down" aria-hidden="true"></i> 256 ${(OndePossoRequererPergunta?trim?length > 0)?then(OndePossoRequererPergunta,'Onde posso requerer?')} 257 </a> 258 </p> 259 </div> 260 <div id="itemThree" class="collapse" role="tabpanel" aria-labelledby="headingOne" style="background-color:white;"> 261 <div class="card-block"> 262 ${OndePossoRequerer} 263 </div> 264 </div> 265 </div> 266 <div class="card" style="border: none; padding: 5px;"> 267 <div class="card-header"> 268 <p class="mb-0" style="padding-left: 20px; font-weight:bold;"> 269 <a id="titleFour" class="serviceQuestion" data-toggle="collapse" data-parent="#accordion" href="#itemFour" aria-expanded="true" aria-controls="itemFour"> 270 <i id="itemFourIcon" style="color:blue;" class="fa fa-arrow-circle-down" aria-hidden="true"></i> 271 ${(documentacaoPergunta?trim?length > 0)?then(documentacaoPergunta,'Que documentos são necessários?')} 272 </a> 273 </p> 274 </div> 275 <div id="itemFour" class="collapse" role="tabpanel" aria-labelledby="headingOne" style="background-color:white;"> 276 <div class="card-block"> 277 ${documentacao} 278 </div> 279 </div> 280 </div> 281 <div class="card" style="border: none; padding: 5px;"> 282 <div class="card-header"> 283 <p class="mb-0" style="padding-left: 20px; font-weight:bold;"> 284 <a id="titleFive" class="serviceQuestion" data-toggle="collapse" data-parent="#accordion" href="#itemFive" aria-expanded="true" aria-controls="itemFive"> 285 <i id="itemFiveIcon" style="color:blue;" class="fa fa-arrow-circle-down" aria-hidden="true"></i> 286 ${(QualOCustoPergunta?trim?length > 0)?then(QualOCustoPergunta,'Qual o custo?')} 287 </a> 288 </p> 289 </div> 290 <div id="itemFive" class="collapse" role="tabpanel" aria-labelledby="headingOne" style="background-color:white;"> 291 <div class="card-block"> 292 ${QualOCusto} 293 </div> 294 </div> 295 </div> 296 <div class="card" style="border: none; padding: 5px;"> 297 <div class="card-header"> 298 <p class="mb-0" style="padding-left: 20px; font-weight:bold;"> 299 <a id="titleSix" class="serviceQuestion" data-toggle="collapse" data-parent="#accordion" href="#itemSix" aria-expanded="true" aria-controls="itemSix"> 300 <i id="itemSixIcon" style="color:blue;" class="fa fa-arrow-circle-down" aria-hidden="true"></i> 301 ${(legislacaoPergunta?trim?length > 0)?then(legislacaoPergunta,'Qual a legislação aplicável?')} 302 </a> 303 </p> 304 </div> 305 <div id="itemSix" class="collapse" role="tabpanel" aria-labelledby="headingOne" style="background-color:white;"> 306 <div class="card-block"> 307 ${legislacao} 308 </div> 309 </div> 310 </div> 311 </div> 312 </div> 313 314 </#if> 315 316 </div> 317 <div class="row" style="padding-top:30px;"> 318 319 <#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 320 <#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") /> 321 <#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(entry.getEntryId()) /> 322 323 <#list currentArticleRelatedLinks as related_entry> 324 <#assign relatedAssetEntryId = related_entry.getEntryId2() /> 325 <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) /> 326 <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() /> 327 <#assign relatedArticle = journalArticleLocalService.getLatestArticle(relatedAssetEntryPrimKey) /> 328 <#assign relatedArticleId = relatedArticle.getArticleId() /> 329 330 <#assign document = saxReaderUtil.read(relatedArticle.getContent()) /> 331 <#assign rootElement = document.getRootElement() /> 332 333 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Titulo']") /> 334 <#assign titulo = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 335 336 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Resumo']") /> 337 <#assign resumo = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 338 339 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Icon']") /> 340 <#assign icon = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 341 342 <div class="col-md-10 col-md-offset-1" style="padding-top:30px;"> 343 <h4 style="margin:0; padding-bottom:20px;">${(relatedServices?trim?length > 0)?then(relatedServices,'Serviços Relacionados')}</h4> 344 <div class="row" style="padding-bottom:15px;display: -webkit-box;display: -webkit-flex;display: -ms-flexbox;display: flex;"> 345 <div class="col-md-1"> 346 <#if (icon?trim?length > 0) > 347 <img style="width: 80px; height: 80px;" src="${icon}" alt="${titulo}"/> 348 <#else> 349 <div style="width: 80px; height: 80px;"></div> 350 </#if> 351 </div> 352 <div class="col-md-11" style="display:flex; align-items:center;"> 353 <div> 354 <a href="${familyRedirect}?articleId=${relatedAssetEntry.getEntryId()}"><h4 style="margin:0;">${titulo}</h4></a> 355 <p style="margin-top:10px;">${resumo}</p> 356 </div> 357 </div> 358 </div> 359 </div> 360 </#list> 361 362 </div> 363 364 <#else> 365 <script> 366 window.location = window.location.href.split("?")[0]; 367 </script> 368 </#if> 369</#if> 370 371<script> 372$('.serviceQuestion').click(function(e) { 373 var elementId = $(this).attr("id"); 374 var changeElementId = $("#" + elementId + " .fa")[0].id; 375 376 $("#" + changeElementId).toggleClass('fa-arrow-circle-down'); 377 $("#" + changeElementId).toggleClass('fa-arrow-circle-up'); 378}); 379</script>