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);
}
.
分享到:
相关推荐
NULL 博文链接:https://zkf60553.iteye.com/blog/1315760
gwt开发实例实现web +ajax
gwt-gradle:使用NPMWebpack的用于现代Web应用程序的Gradle GWT插件
我们正在尝试在这个项目中结合 GWT 和 Polymer: : (工作正在进行中)添加聚合物元素使用 Bower 安装新元素,例如core-toolbar元素: cd src/main/webapp/polymerbower install --save Polymer/core-toolbar使用--...
GWT的环境搭建详细配置说明,GWT中RPC调用的详细例子,内附代码加文档说明。
gwt-htmlspec GWT 支持完整的 W3C HTML 规范。 目的 GWT SDK 包含对多种原生 HTML 元素的原生支持。 此支持允许您创建根植于除通用DivElement之外的元素的 UiBinder 定义。 然而,可用元素的多样性并非应有尽有,...
GWT学习文档,整理的学习文档,适用于初学者
Ext GWT 2.0: Beginner's Guide pdf 和源码,重点推荐学习GWT-EXT的入门资料,英文版的
GWT AsyncGen是一个简单的Ant任务,没有依赖项,您可以轻松地将其合并到项目中,以完成为FooService GWT RemoteService接口定义生成FooServiceAsync源的烦人的自动化任务。 我们的目标是在这里实现最大程度的简化。 ...
使用的技术: IDE:eclipse Luna Service Release 2 (4.4.2) Jar 管理:Apache Maven Web 技术:GWT、GWTP、CSS 版本 GWT 版本:2.7.0 gwt-maven-plugin.version:2.7.0 目标.jdk:1.7
您可以使用Maven生成( mvn package )并运行( mvn gwt:devmode )应用程序。 如果要在不使用Maven的情况下构建应用程序,请考虑以下提示: 使用版本低于2.8.0-beta1的GWT-SDK构建应用程序将无法正常工作。 您...
gwt-cannonjs 围绕库的 GWT 包装器。演示大多数 cannon.js 演示被翻译成 Java/... (1) 该规则的例外是接受 JavaScript 函数作为参数的方法(例如事件侦听器):由于在 Java 中无法实例化方法对象,因此每个函数参数必须
实现原理:通过GWT的RPC来调用Spring 传过来的服务器端数据 注意:需要的jar包 * gwt-user.jar * gwt-servlet.jar * mysql-connectot-java-3.1.12.jar * spring.jar * commons-dbcp.1.2.1.jar * coommons-pool...
gwt 练习gwt 练习gwt 练习gwt 练习
fwefwefwGWT工具GWT工具GWT工具GWT工具GWT工具GWT工具
GWT 2.7 Designer修补程序 如果要使用预构建的SDK,请在存储库的根目录中获取gwt-0.0.0.zip文件。 它是在没有Elemental支持的情况下构建的。 请参阅此处以获取2.6.1补丁中的内容: : 除了上述补丁的更改之外,还...
gwt-crypto 从 code.google.com/p/gwt-crypto 自动导出 ===更新 2015-03-12:=== ... shadow 说:我为 maven repo 和 base64 支持添加了 GWT 版本 2.1.0、2.2.0、2.3.0(由于缺少 BigInteger 支持而无法支持 2.0.0)的
快速开始使用该库的最简单方法是将以下依赖项添加到构建系统中。 IE< dependency> < groupId>org.realityforge.gwt.keycloak</ groupId> < artifactId>gwt-keycloak</ artifactId> < version>0.11</ version> ...
入门: 导入和扩展“ ScriptInjectorEntry”,而不是实现“ EntryPoint” 将“ onModuleLoad”更改为“ onScriptLoad” (可选)将一些独立于第三方脚本的仅GWT初始化移动到onBeforeScriptLoad(如设置UE
gwt-material 适用于GWT的Google Material Design包装器 迁移2.0-> 2.1 演示版 文献资料 支持文档可以在找到我们为开发人员创建了 Maven 当前版本2.4.2 < groupId>com.github.gwtmaterialdesign</ groupId> ...