dojo和java服务器交互,注意,不管跟哪种语言接上去,都不重要,
重要的是
- dojo要什么样的数据
- 服务器要什么样的数据
- 他们怎么沟通
经常有人问什么extjs和ssh实例什么的,所以才被上这个重要的提示,如果你是跟servlet交互,个人觉得更容易,out.print把数据输出就可以,更简单
首先就是一个model和数据库
Category.java()
Category.hbm.xml
数据库脚本:
/*Table structure for table `category` */ DROP TABLE IF EXISTS `category`; CREATE TABLE `category` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) DEFAULT NULL, `url` varchar(255) DEFAULT NULL, `isFolder` bit(1) DEFAULT NULL, `pid` int(11) DEFAULT NULL, `viewUrl` varchar(255) DEFAULT NULL, `sortingCode` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `FK302BCFED3B107E4` (`pid`), CONSTRAINT `FK302BCFED3B107E4` FOREIGN KEY (`pid`) REFERENCES `category` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8; /*Data for the table `category` */ insert into `category`(id,title,url,isFolder,pid,viewUrl,sortingCode) values (1,'管理菜单',NULL,'',NULL,NULL,2010),(2,'景点大全',NULL,'',1,NULL,2010),(3,'热门活动','','',1,NULL,20100107),(4,'驴客集','AAA','',1,NULL,2010),(5,'旅游政务资讯',NULL,'',8,NULL,2010),(6,'武汉赛车协会',NULL,'',8,NULL,2010),(7,'大武汉城市圈',NULL,'',8,NULL,2010),(8,'特色专栏',NULL,'',1,NULL,2010),(9,'旅游常识','','',1,NULL,20100107),(10,'各地指南','','',1,NULL,20100107),(11,'旅行社','','',1,NULL,20100107),(12,'旅游线路','','',1,NULL,20100107),(13,'活动分类','classifyDefault.action','',3,NULL,20100107),(14,'活动管理','activityDefault.action','',3,NULL,20100107),(15,'旅游线路分类','classifyDefault.action','',12,NULL,20100107),(16,'旅游线路管理','activityDefault.action','',12,NULL,20100107),(17,'吃喝玩乐','','',1,NULL,20100107);
其次就是action和struts.xml配置
CategoryAction.java
struts.xml
<include file="com/flexoa/config/struts/struts-category-tree.xml" />
category-struts.xml
再就是html页面
至此dojo树的读取服务器数据、修改并提交到服务器、删除树、添加并提交到服务器成功完成,
这里要注意
添加的时候 id值如果不对就会失败,随便插入一个id就可以解决,我用的id : lastBoxSelected.id+highestBoxId+0,
这种可以解决添加时候的问题,但带来了修改时候的问题:
修改的时候自己指定的id和服务器(存储到数据库)的id不一样,造成了按ID就无法修改的问题,因为ID是错误的,
再来个笨的办法,就是按标题名称修改,
或都在插入的时候把ID返回,重新插入到store里面
呵呵。完全解决-
最后修改了一下JS:
最终HTML
最终JS
下一步增加树(tree)拖放 操作,下下一步增加tree(树)右键菜单 功能