起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6813|回复: 12

[结贴] 如何操作session?

[复制链接]

128

主题

491

帖子

1058

积分

金牌会员

Rank: 6Rank: 6

积分
1058
QQ
发表于 2016-7-11 10:50:21 | 显示全部楼层 |阅读模式
版本: BeX5V3.1 小版本号:
数据库: Oracle 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 7 浏览器: Chrome
请问如何在进入页面后得到session中的登录信息;并且能够在进入页面后进行判断当前登录人员是否有权限操作模块;类似原生的写法,这些方法应该写在哪里呢?如何读取session,以及把数据放到session中?不然每次进入某个模块都要查询一次数据库判断;很麻烦。

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2016-7-11 13:34:19 | 显示全部楼层
1.http://docs.wex5.com/bex5-ui-question-list-100042/
2.如果没有功能没有权限在打开功能的就会报错提示没有权限
3.如果要做数据缓存可以用localstorage或是indexedDB在前端缓存,或者可以参考orgDialogPC中数据缓存的实现
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

128

主题

491

帖子

1058

积分

金牌会员

Rank: 6Rank: 6

积分
1058
QQ
 楼主| 发表于 2016-7-11 17:44:03 | 显示全部楼层
本帖最后由 风语者 于 2016-7-11 17:49 编辑

请问一下,在bex5.3.4版本中,使用this.getContext().getSystemParameter(name);传入map的键,为啥拿不到值;file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\946212782\QQ\WinTemp\RichOle\%T(GZWF$]O}OSG58B6@B5%H.png 123.png 我重写了SA_X目录下的system.java方法
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2016-7-11 18:04:07 | 显示全部楼层
this.getContext().getSystemParameter(name);是获取参数的不是传参的
具体问题是什么?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

128

主题

491

帖子

1058

积分

金牌会员

Rank: 6Rank: 6

积分
1058
QQ
 楼主| 发表于 2016-7-11 19:10:16 | 显示全部楼层
我的需求是这样的:
把登录后查询数据库的一些信息放到session中,我现在重写了SA_X下的system.java文件,可以通过前台去调用方法的形式得到数据;但是这样需要把所有的模块都调用一次,所以想通过前台直接调用session中的数据;记得2.7中可以通过:
var Object_info = justep.Context; //获得登录信息
pub = Object_info._getNodeValue("/form/bizParams/xxxx/text()");
但是3.4中不知道该如何做?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2016-7-12 09:32:40 | 显示全部楼层
1.SystemProcedure.java中
        public static Object getSysParams() {
                Map hashMap =  (HashMap<String, String>)ContextHelper.getSysParams();
                hashMap.put("currentTestLabel", "aaa");
                return hashMap;
        }

2.js中获取this.getContext().getSystemParameter("currentTestLabel")
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

128

主题

491

帖子

1058

积分

金牌会员

Rank: 6Rank: 6

积分
1058
QQ
 楼主| 发表于 2016-7-12 10:21:00 | 显示全部楼层
SystemProcedure.java这个是要进行重写还是修改呢?我是重写了一个SA_X文件夹;底下有新建立的procedure.xml,但没有找到SystemProcedure.java,该如何创建呢?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2016-7-12 10:46:20 | 显示全部楼层
如果自己把getSysParamsAction这个action的Procedure关联为自己新建的procedure.xml文件中定义的,那就自己在对应的java文件中实现
java方法中用
Map hashMap =  (HashMap<String, String>)ContextHelper.getSysParams();
                hashMap.put("currentTestLabel", "aaa");
                return hashMap;


要注意的是java的文件名和类名不能用System,要改为其他的,因为会给System.out.println中的System有冲突
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

128

主题

491

帖子

1058

积分

金牌会员

Rank: 6Rank: 6

积分
1058
QQ
 楼主| 发表于 2016-7-12 11:00:47 | 显示全部楼层
我这样写对不:在SA_X下新创建的system.process.m中引用 123.png 123.png

原来system中的getSysParamsAction,然后在执行后事件中增加方法:

public static Object systemProcessAfterGetSysParamsAction() {
                Map<String,Object> map =(Map<String,Object>)ContextHelper.getSessionContext().get("personInfo");
                String companyCode = map.get("COMPANYCODE").toString();
                String companyName = map.get("COMPANYNAME").toString();
//                Boolean isAdmin = (Boolean)map.get("ISADMIN");
                Map<String,String> hashMap =  (HashMap<String, String>)ContextHelper.getSysParams();
                hashMap.put("COMPANYCODE", companyCode);
                hashMap.put("COMPANYNAME", companyName);
//                hashMap.put("ISADMIN", isAdmin);
                return hashMap;
        }

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2016-7-12 11:33:58 | 显示全部楼层
不是在getSysParamsAction的执行后事件中操作
是要重写这个action的对应的java代码的实现
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-6-22 19:00 , Processed in 0.067394 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表