其实写这种树结构选择的公共组件,如果项目是用的jsp, 这个倒是蛮好写的,直接用自定义标签就可以实现了,jsp页面调用自定义标签,然后在自定义标签.tag里面写操作数结构的共性代码
本来我也想直接套用之前项目里面的自定义标签来实现的,但是现在这个项目全都是用的html+veloctity,所有这里jsp的自定义标签.tag就无法使用了,以前没用过veloctity这玩意,思考了下,最后根据jsp里面的自定义标签的方式在html里面用自定义属性实现了公共树结构的选中
注:demo代码用的springmvc+html+jquery+layer+zTree+velocity来实现的
springmvc(java)、html(页面)、jquery(js框架)、layer(弹出层组件)、zTree(树插件)、velocity(模板引擎)
1.写一个子父级关系的entitypublic class TestMenu{
//菜单id
private Long menuId;
//菜单名称
private String menuName;
//父亲级id
private Long menuParentId;
//子集集合
private ArrayList subList;
public TestMenu(){
super();
}
public TestMenu(Long menuId,Long menuParentId){
super();
this.menuId = menuId;
this.menuParentId = menuParentId;
}
//生成对应的get set方法
}
2.service还得写接口和实现还得写mybatis和dao或者Mapper,太麻烦了,这里就不写接口和查询的代码了(只需递归查询出一个数据集合就可以了)
3.写一个TestController类,zTree通过ajax来拿数据@Controller
@RequestMapping("/test")
public class TestController {
@Autowired
private TestService service;
@RequestMapping("/menuTree")
@ResponseBody
public Object menuTree() {
//调用service查询出树的集合
List list = service.findList();
return list;
}