在CQ5中,为什么“复选框”xtype不起作用?但是在对话框中创建一个工作复选框需要'选择'xtype和'复选框'类型?

时间:2015-12-16 00:09:16

标签: jsp checkbox cq5 aem

所以有一个叫做'复选框'的xtype。当我将它应用于cq:widget时,复选框显示在对话框中,但信息不会传递到JSP。我试图创建一个控制<input> html标记的输入类型的复选框。

环顾四周之后,我发现创建一个复选框的正确方法是将xtype设置为'selection'并将其设置为'checkbox'并且它有效。我改变的唯一方法是类型和xtype。 / p>

以下是我在JSP中使用它的方法

    <%final boolean checked= properties.get("checkbox", false);
    request.setAttribute("checked", checked);%>

    <input type = <c:out value="${checked?'text':'password'}"/>

我想知道这两种方法之间有什么区别,为什么第一种方法不起作用?

编辑:或者更确切地说,如何使用xtype'复选框'?实际上是什么?

1 个答案:

答案 0 :(得分:1)

最终选中&#39;复选框&#39; xtype不起作用,因为它的设计方式不会像@Emin那样自行保存状态。

当用户加载使用&#39;复选框的组件时对话框中的xtype,该页面的第一次加载,底层JCR节点没有为该复选框存储任何对话框属性,因为它尚未被作者配置。然后,如果作者选中该框以进行配置并保存对话框,则对话框中的表单提交将包括选择,并且该属性将被保存在已被检查的存储库中。

但是如果作者后来更改了内容并且取消选中该框,则对话框表单提交不会包含有关此复选框的任何内容,因此JCR存储库中的基础属性不是&#39;触摸 - 它保持原样,表示盒子已被检查。因此,当作者重新加载页面时,仍会检查该框(而不是作者想要的内容)。

&x 39选择&#39;使您免于必须处理此问题。