rcp创建步骤
* 1.创建TreeService接口继承RemoteService
* 在接口内添加方法
* 2.配置TreeService的class注解,设定servlet访问路径@RemoteServiceRelativePath("treeService")
* 3.创建TreeServiceAsync接口(必须与1步骤的service名称相对应,即在service后面添加Async作为接口名称)
* 在参数中的最后位置添加参数:AsyncCallback<TreeModel> callback
* 4.创建TreeServiceImpl类,继承RemoteServiceServlet,实现TreeService接口
* 5.配置web.xml文件,添加servlet:serviceImpl url地址:小写的模块名称/注解的地址 (__gxt_tree/treeService)
*
* 6.在entry-point 里面创建实例:TreeServiceAsync treeService=GWT.create(TreeService.class);
* 调用treeService的方法就可以访问后台servlet了
* 7.用法:

 
  
  1. treeService.getTreeModel(new AsyncCallback<TreeModel>(){  
  2. @Override  
  3. public void onFailure(Throwable caught) {  
  4. }  
  5. @Override  
  6. public void onSuccess(TreeModel result) {  
  7. store.add(result, true);  
  8. }  
  9. }); 

如果返回了内容,就进入onSuccess方法,你可以在这个方法中对返回的数据进行处理
如果访问失败了,将进入onFailure方法,你可以提示用户,访问后台失败或进行其他的处理

 
  
  1. public class GxtTree implements EntryPoint {  
  2.  
  3. private Icons icons = GWT.create(Icons.class);   
  4. private TreeServiceAsync treeService= GWT.create(TreeService.class);  
  5.  
  6. /**  
  7. * This is the entry point method.  
  8. */  
  9. public void onModuleLoad() {  
  10. // RootPanel.get().add(getBasicTree());  
  11. // RootPanel.get().add(getContentMenuTree());  
  12. RootPanel.get().add(getRpcTree());  
  13. }  
  14.  
  15. private ContentPanel getRpcTree() {  
  16. ContentPanel panel = getContainer();  
  17.  
  18. final TreeStore<TreeModel> store = new TreeStore<TreeModel>();  
  19.  
  20. treeService.getTreeModel(new AsyncCallback<TreeModel>(){  
  21.  
  22. @Override  
  23. public void onFailure(Throwable caught) {  
  24.  
  25. }  
  26.  
  27. @Override  
  28. public void onSuccess(TreeModel result) {  
  29. store.add(result, true);  
  30. }  
  31.  
  32. });  
  33. final TreePanel<TreeModel> tree = new TreePanel<TreeModel>(store);  
  34. tree.setDisplayProperty("name");  
  35. tree.getStyle().setLeafIcon(icons.leaf());  
  36.  
  37. panel.add(tree);  
  38. return panel;  
  39. }  
  40.  
  41. private ContentPanel getContainer(){  
  42. ContentPanel panel=new ContentPanel();  
  43. panel.setSize(500, 400);  
  44. new Resizable(panel);  
  45.  
  46. return panel;  
  47. }  
  48.  
  49. }  
  50.  
  51. @RemoteServiceRelativePath("treeService")  
  52. public interface TreeService extends RemoteService {  
  53.  
  54. public TreeModel getTreeModel();  
  55. }  
  56.  
  57. public interface TreeServiceAsync {  
  58.  
  59. void getTreeModel(AsyncCallback<TreeModel> callback);  
  60.  
  61. }  
  62.  
  63. public class TreeServiceImpl extends RemoteServiceServlet implements TreeService {  
  64.  
  65. private static final long serialVersionUID = 1L;  
  66.  
  67. @Override  
  68. public TreeModel getTreeModel() {  
  69. TreeModel root=new BaseTreeModel();  
  70. root.set("name""根节点");  
  71.  
  72. TreeModel system=new BaseTreeModel();  
  73. system.set("name""系统管理");  
  74. system.setParent(root);  
  75. root.add(system);  
  76.  
  77. TreeModel user=new BaseTreeModel();  
  78. user.set("name""用户管理");  
  79. user.setParent(system);  
  80. system.add(user);  
  81.  
  82. TreeModel role=new BaseTreeModel();  
  83. role.set("name""角色管理");  
  84. role.setParent(system);  
  85. system.add(role);  
  86.  
  87. TreeModel permission=new BaseTreeModel();  
  88. permission.set("name","权限管理");  
  89. permission.setParent(system);  
  90. system.add(permission);  
  91.  
  92. TreeModel office=new BaseTreeModel();  
  93. office.set("name""办公中心");  
  94. office.setParent(root);  
  95. root.add(office);  
  96. return root ;  
  97. }  
  98. }  
  99. <servlet>  
  100. <servlet-name>tree</servlet-name>  
  101. <servlet-class>com.hqh.test.server.TreeServiceImpl</servlet-class>  
  102. </servlet>  
  103. <servlet-mapping>  
  104. <servlet-name>tree</servlet-name>  
  105. <url-pattern>gxttree/treeService</url-pattern>  
  106. </servlet-mapping>