Quiero obtener el atributo personalizado en AEM HTL y usar el objeto de solicitud. este atributo ya está configurado para solicitar a través de la API de uso de javascript. como esto:
test.js
use(function () { request.setAttribute('someKey', 'someValue'); }); test.html
<html data-sly-use.logic="test.js"> <!-- some code ... --> <body> <div>${request.attribute['someKey']}</div> </body> </html>resultado:
<html data-sly-use.logic="test.js"> <!-- some code ... --> <body> <div></div> <!-- empty --> </body> </html>¿Podemos obtener el atributo de solicitud sin Java? Muchas gracias.
Dado que la sintaxis HTL es más declarativa que imperativa, no se admite llamar a métodos/funciones con parámetros. Eso significa que no puede hacer algo como ${request.getAttribute('someKey')} . Desafortunadamente, la API Java HttpServletRequest no expone los atributos como un mapa (lo hace para los parámetros ), por lo que tampoco puede hacer ${request.attributeMap['someKey']} , deberá buscar el atributo y exponerlo desde su objeto de uso/modelo.
Aunque no puede enviar el atributo de solicitud de la forma en que está tratando de hacerlo en este momento, puede configurarlo como una variable desde su JS del lado del servidor y acceder a él en su código.
En tu prueba.js
use(function () { return { someKey: someValue }; });En su prueba.html
<html data-sly-use.logic="test.js"> <!-- some code ... --> <body> <div>${logic.someKey}</div> </body> </html>Esto debería imprimir someValue como salida para usted.