`

GWT权限验证:父类的普通方法调用父类抽象方法,而该抽象方法由其子类实现

    博客分类:
  • GWT
阅读更多

GWT权限验证:父类BaseActivity继承com.google.gwt.activity.shared.AbstractActivity实现start方法,在start方法中调用一个约束子类的抽象方法showStart方法,从而实现每一次访问都需要进行权限验证,这一点类似filter的思想,代码片段如下:。


package com.cdl.client.activity;

import com.google.gwt.activity.shared.AbstractActivity;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.place.shared.PlaceController;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.cdl.client.GreetingServiceAsync;
import com.cdl.client.place.LoginPlace;
import com.cdl.client.util.ForWordString;
import com.cdl.client.util.tool.ClientFactory;
import com.cdl.client.util.tool.LayoutMenuiteComponent;
import com.cdl.client.util.tool.UserTool;
import com.cdl.client.view.compoment.MenuitemComponment;

public abstract class BaseActivity extends AbstractActivity {
	protected ClientFactory factory;
	protected VerticalPanel contentVerPanel;
	private MenuitemComponment navMenu;
	private LayoutMenuiteComponent menuiteComponment = UserTool.getLayOutMenuite();

	public BaseActivity(ClientFactory factory) {
		this.factory = factory;
	}

	/** 这个start方法主要用来做权限验证,然后再调用startShow方法 */
	@Override
	public void start(final AcceptsOneWidget panel, final EventBus eventBus) {

		GreetingServiceAsync service = UserTool.getGreetingservice();

		service.validateAdminLogin(new AsyncCallback<String>() {

			@Override
			public void onSuccess(String serverResult) {

				JSONValue serverVal = JSONParser.parseStrict(serverResult);
				JSONObject serverJson = serverVal.isObject();

				boolean status = serverJson.get("status").isBoolean().booleanValue();
				if (status) {

					contentVerPanel = new VerticalPanel();
					navMenu = menuiteComponment.getMenuitemComponment();

					int type = (int) serverJson.get("type").isNumber().doubleValue();

					// 根据管理员类型的不同,在contentVerPanel添加是否包含administration的水平导航菜单
					if (type == 1) {
						contentVerPanel.add(navMenu.createSuperAdminMenuHPanel());
					} else {
						contentVerPanel.add(navMenu.createNormalAdminMenuHPanel());
					}

					//子类实现的父类方法
					startShow(panel, eventBus);
				} else {
					PlaceController placeGo = UserTool.getClientfactory().getPlaceController();
					placeGo.goTo(new LoginPlace(ForWordString.LOGINPLACE));
				}
			}

			@Override
			public void onFailure(Throwable caught) {
				PlaceController placeGo = UserTool.getClientfactory()
						.getPlaceController();
				placeGo.goTo(new LoginPlace(ForWordString.LOGINPLACE));
			}
		});
	}

	/** 用户在start方法中验证权限后进入视图*/
	public abstract void startShow(AcceptsOneWidget panel, EventBus eventBus);
}







.

分享到:
评论

相关推荐

    gwt反射 http://code.google.com/p/google-gin/wiki/GinTutorial

    标题中的“gwt反射”指的是Google Web Toolkit (GWT) 中的反射机制。GWT 是一个用于构建富互联网应用程序(RIA)的开放源代码Java框架,它允许开发者使用Java编程语言来编写前端应用,然后通过编译器将Java代码转换...

    GWT RPC详细例子:代码加文档说明

    在GWT中,你需要定义一个服务接口,该接口的所有方法都将被暴露为远程调用。服务接口的实现位于服务器端,而客户端则有一个对应的“服务代理”类,用于发起RPC调用。例如,你可能有一个`UserService`接口,其中包含`...

    gwt开发实例实现

    GWT(Google Web Toolkit)是Google推出的...总之,GWT结合Ajax技术为开发高性能的Web应用提供了一种强大而高效的方法。通过学习和实践GWT开发实例,开发者可以掌握构建交互式Web应用的技巧,提高开发效率和产品质量。

    GWT学习文档

    **GWT技术文档** Google Web Toolkit (GWT) 是一个开放源码的开发框架,它允许开发者使用Java语言来编写客户端的Web应用。GWT通过编译Java代码为高效的JavaScript,使得开发人员能够利用Java的强大功能和生态系统的...

    《GWT揭秘》试读:运行调试项目

    《GWT揭秘》试读:运行调试项目 GWT(Google Web Toolkit)是Google推出的一款用于构建高性能、跨浏览器的富互联网应用程序(Rich Internet Applications,RIA)的开发框架。它允许开发者使用Java语言来编写客户端...

    GWT快速开发(GWT) 是一个Java软件开发框架用于开发类似于Google Maps和Gmail的AJAX应用程序。GWT的设计参考Java AWT包设计,类命名规则、接口设计、事件监听等。你可以用Java编程语言开发你的界面,然后用GWT编译器将Java类转换成适合浏览器执行的...

    **Google Web Toolkit (GWT)** 是由Google推出的一款开源的Java开发框架,主要用于构建高度交互式的Web应用程序,特别是那些类似Google Maps和Gmail这样的AJAX应用。GWT的设计灵感来源于Java AWT包的设计理念,包括...

    GWT简介.docx

    5. **异步通信(Ajax)**:GWT内置了异步通信机制,通过GWT的RequestBuilder或GWT-RPC(Remote Procedure Call)实现与服务器的无缝交互,实现页面的无刷新更新。 6. **本地化支持**:GWT支持多语言环境,开发者...

    Ext GWT 2.0: Beginner's Guide

    该书首先介绍了GWT的基本概念,包括其运行机制、模块化系统以及如何搭建开发环境。接着,详细讲解了Ext GWT的组件模型,包括各种控件(如表格、树形视图、面板、按钮等)的使用方法和自定义方式,让读者了解如何构建...

    gwt 练习 gwt学习

    8. **历史管理**:GWT的History API允许应用程序创建和管理URL片段,实现页面状态的导航,而无需刷新整个页面。 9. **单元测试**:GWT提供JUnit支持,允许在浏览器环境中进行客户端代码的单元测试。 10. **CSS和...

    GWT工具GWT工具GWT工具GWT工具GWT工具GWT工具

    fwefwefwGWT工具GWT工具GWT工具GWT工具GWT工具GWT工具

    GWT-RPC-1.pdf

    这一理念的核心在于,它将传统的服务器端处理逻辑从Servlet方法中抽象出来,封装为可被远程调用的方法,从而使得服务器端业务逻辑更加清晰和易于维护。 ### 开发过程 #### 定义客户端数据服务接口 在GWT-RPC中,...

    GWT+开发和部署.doc

    3. 创建GWT模块:创建一个GWT模块,它相当于一个页面,每个模块都有一个module名.gwt.xml文件,该文件中定义了这个页面需要使用到的所有的资源。 4. 编写GWT代码:使用Java语言编写GWT代码,定义界面和逻辑。 5. ...

    GWT-RPC.pdf

    根据提供的文件信息,我们可以深入探讨GWT-RPC的相关知识点,主要围绕其概念、开发流程以及部署等几个方面展开。 ### GWT-RPC:基础知识与概念 #### RPC:远程过程调用 RPC(Remote Procedure Call)是一种协议,...

    GWT (GOOGLE WEB TOOLKIT)介绍PPT

    **GWT (Google Web Toolkit)** 是一款由Google开发的开源工具包,专为Java开发者设计,使得他们能够使用Java语言创建高效、动态且交互性强的Ajax应用。GWT通过将Java代码编译成浏览器可执行的JavaScript和HTML,解决...

    GWTDemo

    5. **异步通信 - RPC (Remote Procedure Call)**: GWT 提供了RPC机制,使得客户端可以直接调用服务器端的方法,处理数据和服务端逻辑。GWTDemo可能包含了与服务器交互的示例。 6. **本地存储**: GWT 支持本地存储,...

    smartgwt+mybatis+spring的整合

    在SmartGwt的客户端,通过Ajax请求调用Spring MVC的Controller,由Controller转发到Service,再由Service调用Mybatis的Mapper执行SQL。 5. **测试与优化**:完成基本功能后,进行单元测试和集成测试,确保各部分的...

    gwt 实现的一个简单计算器

    这个"gwt 实现的一个简单计算器"项目提供了一个基础的起点,适合初学者了解GWT的工作原理和开发流程。下面将详细介绍GWT、计算器实现的关键知识点以及如何在Eclipse环境中进行调试。 1. **GWT概述**: GWT允许...

    GWT快速开发.pdf

    - **远程方法调用(RPC)**:简化了客户端与服务器端之间的通信处理,支持异步请求,提高用户体验。 综上所述,GWT不仅提供了一种新的Web开发方式,而且极大地提高了开发效率和应用性能。对于希望利用Java技术栈开发...

Global site tag (gtag.js) - Google Analytics