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.用法:
- treeService.getTreeModel(new AsyncCallback<TreeModel>(){
- @Override
- public void onFailure(Throwable caught) {
- }
- @Override
- public void onSuccess(TreeModel result) {
- store.add(result, true);
- }
- });
如果返回了内容,就进入onSuccess方法,你可以在这个方法中对返回的数据进行处理
如果访问失败了,将进入onFailure方法,你可以提示用户,访问后台失败或进行其他的处理
- public class GxtTree implements EntryPoint {
- private Icons icons = GWT.create(Icons.class);
- private TreeServiceAsync treeService= GWT.create(TreeService.class);
- /**
- * This is the entry point method.
- */
- public void onModuleLoad() {
- // RootPanel.get().add(getBasicTree());
- // RootPanel.get().add(getContentMenuTree());
- RootPanel.get().add(getRpcTree());
- }
- private ContentPanel getRpcTree() {
- ContentPanel panel = getContainer();
- final TreeStore<TreeModel> store = new TreeStore<TreeModel>();
- treeService.getTreeModel(new AsyncCallback<TreeModel>(){
- @Override
- public void onFailure(Throwable caught) {
- }
- @Override
- public void onSuccess(TreeModel result) {
- store.add(result, true);
- }
- });
- final TreePanel<TreeModel> tree = new TreePanel<TreeModel>(store);
- tree.setDisplayProperty("name");
- tree.getStyle().setLeafIcon(icons.leaf());
- panel.add(tree);
- return panel;
- }
- private ContentPanel getContainer(){
- ContentPanel panel=new ContentPanel();
- panel.setSize(500, 400);
- new Resizable(panel);
- return panel;
- }
- }
- @RemoteServiceRelativePath("treeService")
- public interface TreeService extends RemoteService {
- public TreeModel getTreeModel();
- }
- public interface TreeServiceAsync {
- void getTreeModel(AsyncCallback<TreeModel> callback);
- }
- public class TreeServiceImpl extends RemoteServiceServlet implements TreeService {
- private static final long serialVersionUID = 1L;
- @Override
- public TreeModel getTreeModel() {
- TreeModel root=new BaseTreeModel();
- root.set("name", "根节点");
- TreeModel system=new BaseTreeModel();
- system.set("name", "系统管理");
- system.setParent(root);
- root.add(system);
- TreeModel user=new BaseTreeModel();
- user.set("name", "用户管理");
- user.setParent(system);
- system.add(user);
- TreeModel role=new BaseTreeModel();
- role.set("name", "角色管理");
- role.setParent(system);
- system.add(role);
- TreeModel permission=new BaseTreeModel();
- permission.set("name","权限管理");
- permission.setParent(system);
- system.add(permission);
- TreeModel office=new BaseTreeModel();
- office.set("name", "办公中心");
- office.setParent(root);
- root.add(office);
- return root ;
- }
- }
- <servlet>
- <servlet-name>tree</servlet-name>
- <servlet-class>com.hqh.test.server.TreeServiceImpl</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>tree</servlet-name>
- <url-pattern>gxttree/treeService</url-pattern>
- </servlet-mapping>
转载于:https://blog.51cto.com/huqianhao/956500