所以有一个叫做'复选框'的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'复选框'?实际上是什么?答案 0 :(得分:1)
最终选中&#39;复选框&#39; xtype不起作用,因为它的设计方式不会像@Emin那样自行保存状态。
当用户加载使用&#39;复选框的组件时对话框中的xtype,该页面的第一次加载,底层JCR节点没有为该复选框存储任何对话框属性,因为它尚未被作者配置。然后,如果作者选中该框以进行配置并保存对话框,则对话框中的表单提交将包括选择,并且该属性将被保存在已被检查的存储库中。
但是如果作者后来更改了内容并且取消选中该框,则对话框表单提交不会包含有关此复选框的任何内容,因此JCR存储库中的基础属性不是&#39;触摸 - 它保持原样,表示盒子已被检查。因此,当作者重新加载页面时,仍会检查该框(而不是作者想要的内容)。
&x 39选择&#39;使您免于必须处理此问题。