Tapestry:如何使用Checkbox with Tree

时间:2013-07-10 04:04:31

标签: checkbox tree tapestry

我正在尝试实现一棵树。我希望用户能够通过单击每个叶节点上的复选框来选择叶节点。但它目前无法使用复选框。树无法扩展。

这是我的tml代码片段

<t:zone t:id="treeZone" id="treeZone">
     <t:tree t:id="Tree" t:model="treeModel" t:node="treeNode" >
          <p:label>
                <t:if test="treeNode.leaf">
                        <input t:id="leafNode" t:type="checkbox" value="leaf" />
                        ${treeNode.label}

                    <p:else>
                         ${treeNode.label}
                    </p:else>
                </t:if>
           </p:label>
       </t:tree>
</t:zone>

如果我带走

<input t:id="leafNode" t:type="checkbox" value="leaf" />

然后树可以扩展。但我需要复选框。 任何帮助,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:2)

我只能假设您的日志文件中有例外。

我认为Tree组件目前不支持开箱即用的表单和字段组件。要在<t:checkbox />内支持<t:textfield /><t:form />等,您需要对FormFragmentFormInjector做一些魔术。我不建议尝试这个,除非你是一个挂毯大师。代码可能看起来有点像AjaxFormLoop

我似乎记得Howard Lewis Ship(Tapestry的创建者)在Tapestry 5.4(目前未发布)中一起发布关于使用Tree和Checkbox的推文。您可能需要查看5.4源代码。

如果你想快速修复,你可以渲染一个html复选框(不是tapestry组件,只是一个普通的<input type="checkbox" name="..." />)。这可能需要您在服务器端处理RequestParameter