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反射”指的是Google Web Toolkit (GWT) 中的反射机制。GWT 是一个用于构建富互联网应用程序(RIA)的开放源代码Java框架,它允许开发者使用Java编程语言来编写前端应用,然后通过编译器将Java代码转换...
在GWT中,你需要定义一个服务接口,该接口的所有方法都将被暴露为远程调用。服务接口的实现位于服务器端,而客户端则有一个对应的“服务代理”类,用于发起RPC调用。例如,你可能有一个`UserService`接口,其中包含`...
GWT(Google Web Toolkit)是Google推出的...总之,GWT结合Ajax技术为开发高性能的Web应用提供了一种强大而高效的方法。通过学习和实践GWT开发实例,开发者可以掌握构建交互式Web应用的技巧,提高开发效率和产品质量。
**GWT技术文档** Google Web Toolkit (GWT) 是一个开放源码的开发框架,它允许开发者使用Java语言来编写客户端的Web应用。GWT通过编译Java代码为高效的JavaScript,使得开发人员能够利用Java的强大功能和生态系统的...
《GWT揭秘》试读:运行调试项目 GWT(Google Web Toolkit)是Google推出的一款用于构建高性能、跨浏览器的富互联网应用程序(Rich Internet Applications,RIA)的开发框架。它允许开发者使用Java语言来编写客户端...
**Google Web Toolkit (GWT)** 是由Google推出的一款开源的Java开发框架,主要用于构建高度交互式的Web应用程序,特别是那些类似Google Maps和Gmail这样的AJAX应用。GWT的设计灵感来源于Java AWT包的设计理念,包括...
5. **异步通信(Ajax)**:GWT内置了异步通信机制,通过GWT的RequestBuilder或GWT-RPC(Remote Procedure Call)实现与服务器的无缝交互,实现页面的无刷新更新。 6. **本地化支持**:GWT支持多语言环境,开发者...
该书首先介绍了GWT的基本概念,包括其运行机制、模块化系统以及如何搭建开发环境。接着,详细讲解了Ext GWT的组件模型,包括各种控件(如表格、树形视图、面板、按钮等)的使用方法和自定义方式,让读者了解如何构建...
8. **历史管理**:GWT的History API允许应用程序创建和管理URL片段,实现页面状态的导航,而无需刷新整个页面。 9. **单元测试**:GWT提供JUnit支持,允许在浏览器环境中进行客户端代码的单元测试。 10. **CSS和...
fwefwefwGWT工具GWT工具GWT工具GWT工具GWT工具GWT工具
这一理念的核心在于,它将传统的服务器端处理逻辑从Servlet方法中抽象出来,封装为可被远程调用的方法,从而使得服务器端业务逻辑更加清晰和易于维护。 ### 开发过程 #### 定义客户端数据服务接口 在GWT-RPC中,...
3. 创建GWT模块:创建一个GWT模块,它相当于一个页面,每个模块都有一个module名.gwt.xml文件,该文件中定义了这个页面需要使用到的所有的资源。 4. 编写GWT代码:使用Java语言编写GWT代码,定义界面和逻辑。 5. ...
根据提供的文件信息,我们可以深入探讨GWT-RPC的相关知识点,主要围绕其概念、开发流程以及部署等几个方面展开。 ### GWT-RPC:基础知识与概念 #### RPC:远程过程调用 RPC(Remote Procedure Call)是一种协议,...
**GWT (Google Web Toolkit)** 是一款由Google开发的开源工具包,专为Java开发者设计,使得他们能够使用Java语言创建高效、动态且交互性强的Ajax应用。GWT通过将Java代码编译成浏览器可执行的JavaScript和HTML,解决...
5. **异步通信 - RPC (Remote Procedure Call)**: GWT 提供了RPC机制,使得客户端可以直接调用服务器端的方法,处理数据和服务端逻辑。GWTDemo可能包含了与服务器交互的示例。 6. **本地存储**: GWT 支持本地存储,...
在SmartGwt的客户端,通过Ajax请求调用Spring MVC的Controller,由Controller转发到Service,再由Service调用Mybatis的Mapper执行SQL。 5. **测试与优化**:完成基本功能后,进行单元测试和集成测试,确保各部分的...
这个"gwt 实现的一个简单计算器"项目提供了一个基础的起点,适合初学者了解GWT的工作原理和开发流程。下面将详细介绍GWT、计算器实现的关键知识点以及如何在Eclipse环境中进行调试。 1. **GWT概述**: GWT允许...
- **远程方法调用(RPC)**:简化了客户端与服务器端之间的通信处理,支持异步请求,提高用户体验。 综上所述,GWT不仅提供了一种新的Web开发方式,而且极大地提高了开发效率和应用性能。对于希望利用Java技术栈开发...