我已经尝试了所有 HTL 上下文参数(甚至是“不安全”)。当我检查输入时,我可以看到完整的值,但您看不到字段中预先填充的值。我尝试了不同类型的值、不同的上下文和不同类型的输入字段。[AEM 6.2]
<input type="email" name="senderEmail" value="${userProfile.email @ context='text'}"/>
如果该值在页面源中呈现并且在浏览器检查器中也可见,那么它是否被一些奇怪的 CSS 隐藏了?就像是color:transparent
如果我正确理解您的问题,这实际上不是关于 HTL,而是关于 HTML 输入元素本身。您有一个带有value
属性集的输入元素,但该值未显示在框中。如果这是正确的,那么我建议对HTML 输入值在 set 时不显示进行一些调查,而不是明显的上下文问题。
一些可能的答案将包括隐藏输入文本的 css 样式或在页面加载后清除值的 javascript。当然还有更多潜在的原因,但我们需要更多地了解您的页面以提供更好的答案。
要进行一些调查,您可以尝试加载仅包含该输入的组件,看看是否有效,这将消除页面上其他地方执行的任何 css 或 js。
有很多可能的原因。我会投一个,以帮助您思考。userProfile 是否可以通过使用 api 获得?
我以前犯过这个错误:
<div data-sly-use.bean="com.beans.Bean">
${bean.value}
</div>
// ... other code
${bean.value}
“Bean”稍后不可用,在它的宿主元素之外。