EXTJS 全局域加载,,

最近在开发的过程中,,同事开发的一个好东东,现拿出来分享下
JS层:
//定义
var app={};

Ext.onReady(function(){});
//同步请求
app.SynXHR=function(url){
if (window.ActiveXObject) {
        obj = new ActiveXObject('Microsoft.XMLHTTP');
    }
    else if (window.XMLHttpRequest) {
        obj = new XMLHttpRequest();
    }
obj.open('GET', url, false);
obj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
obj.send(null);
return Ext.util.JSON.decode(obj.responseText);
}
//全局域.
app.GetSession=function(){
try{
var sessioninfo=app.SynXHR('jsplib/session.jsp?cmdType=get');
app.pno=sessioninfo.projectno;
app.pname=sessioninfo.projectname;
app.subno=sessioninfo.subno;
app.subname=sessioninfo.subname;
}catch(e){
Ext.Msg.alert('异常信息','请重新登录')
//window.location.href ='Login.html';
}
};
session.JSP层:
if(cmdType.equalsIgnoreCase("get")){//标记调用函数
GlobalInput tG=(GlobalInput)session.getValue("GI");//定义公共类
userno=tG.UserNo;
if(!userno.equalsIgnoreCase("admin")){
projectno=tG.ProjectNo;
projectname=tG.ProjectName;
subno=tG.SubNo;
subname=tG.SubName;
obj.put("userno",userno)//登入用户名
   .put("projectno",projectno)//项目编号
   .put("projectname",projectname)//项目名称
   .put("subno",subno)//主体编号
   .put("subname",subname);//主体名称
}
out.write(obj.toString());//输出格式为JSONObject
}

JAVA:
public class GlobalInput {
/** 当前操作员编码 */
public String UserNo;
/** 当前操作员 姓名*/
public String UserName;
/** 当前项目号*/
public String ProjectNo;
/** 当前项目名称 */
public String ProjectName;
/** 当前主体编号*/
public String SubNo;
/** 当前主体名称 */
public String SubName;

public GlobalInput() {
}

/**
* 两个GlobalInput对象之间的直接复制
*
* @param cGlobalInput
*            包含有具体值的GlobalInput对象
*/
public void setSchema(GlobalInput cGlobalInput) {
// 获取登陆用户基础信息:用户编码、管理机构等
this.UserNo = cGlobalInput.UserNo;
this.UserName = cGlobalInput.UserName;
this.ProjectNo = cGlobalInput.ProjectNo;
this.ProjectName = cGlobalInput.ProjectName;
this.SubNo = cGlobalInput.SubNo;
this.SubName = cGlobalInput.SubName;
}
}


这样,在实际调用的时候就很简单了,只需地onReady()中,直接使用app.userno,app.pno即可

你可能感兴趣的:(json,jsp,ext,Microsoft,项目管理)