我在Screen 使用 userSession.setAttribute添加了一个参数,然后调用Service的方法,在方法中使用userSessionSource.getUserSession().getAttribute取参数,这样无法获取到,再次打开Screen后参数才刷新
请问Session前后端的同步机制是怎样的,怎样能及时同步前后端的Session?
我在Screen 使用 userSession.setAttribute添加了一个参数,然后调用Service的方法,在方法中使用userSessionSource.getUserSession().getAttribute取参数,这样无法获取到,再次打开Screen后参数才刷新
请问Session前后端的同步机制是怎样的,怎样能及时同步前后端的Session?
web层和core层之前 session属性是同步设置的, 应该是可以取到。
跟踪一下ClientUserSession 的 public void setAttribute(String name, Serializable value) {
方法。
看看是否走到了下面的位置:
if (authenticated) {
UserSessionService uss = AppBeans.get(UserSessionService.NAME);
uss.setSessionAttribute(id, name, value);
}
我描述有误,是在Service 中调用 userSession.setAttribute和 userSession.addPermission方法,然后Screen中无法获取到
session属性只能从web层传递到 core层,反之不行
已解决,我将后端的Session通过接口回传回来,遍历 Attribute 全部写回到 ClientUserSession ,实现core到web的Session同步