Spring MVC的复选框树控件

时间:2014-04-23 10:25:44

标签: jquery spring-mvc

有人可以推荐一个可以使用Spring MVC复选框控件的复选框树实用程序吗?

到目前为止,我已经查看过Dynatree(http://code.google.com/p/dynatree/)以及使用真实复选框(http://www.llakomy.com/articles/adding-dynatree-with-checkboxes-to-a-form/)的扩展,但正如您在演示页面上看到的那样(http://www.llakomy.com/articles/dynatree/tree_with_checkboxes)由于Dynatree的工作方式,你最终得到了“双”复选框。

是否有更适合与Spring MVC一起使用的东西?

1 个答案:

答案 0 :(得分:1)

我认为你不会得到任何开箱即用的东西。问题是Spring MVC如何处理复选框,以确保W3C缺乏远见,使得未经检查的复选框不会发送任何值。因此,Spring MVC无法确定何时取消选中先前选中的复选框。

当您使用<form:checkbox>标记时,您真正得到的是一个HTML复选框,其中包含隐藏字段和一些JavaScript,用于将隐藏字段的值与复选框相关联。 Spring MVC然后使用隐藏字段的值作为指示您已更改复选框的状态。最终结果是Spring可以判断您何时取消选中已经选中的复选框。如果没有大量的额外编码,尝试使用现成的UI插件来模拟这种行为似乎是不可行的。

所以,如果你不得不做自定义编码,为什么不只是滚动你自己的复选框树?在我看来,你可以使用jQuery(或纯JavaScript),一些<ul><form:checkbox>标签轻松地完成这项工作。如果人们如此倾向,甚至可以将它作为自定义JSP标记。 JavaScript / jQuery会将事件监听器附加到所有复选框。单击一个复选框时,它只会选中所有子复选框并检查它们然后递归所有父复选框并以某种方式将它们标记为灰色(CSS任何人??)。取消检查会做同样的事情,除了取消检查子项并取消灰色父项(如果需要)。

我认为这比试图采取其他人写的不兼容Spring MVC并尝试使其有效的方式更容易。