当前位置: 移动技术网 > IT编程>开发语言>Java > Dwr3.0纯注解(纯Java Code配置)配置与应用浅析三之后端反向调用前端

Dwr3.0纯注解(纯Java Code配置)配置与应用浅析三之后端反向调用前端

2019年07月22日  | 移动技术网IT编程  | 我要评论
在前两篇中我们已经介绍了dwr零配置文化化和前端调用后端的方法,想必大家应该已经会熟练掌握了,下来我们主要探讨一下后端怎么反向调用前端的js方法; 就如前两篇说到了用dw

在前两篇中我们已经介绍了dwr零配置文化化和前端调用后端的方法,想必大家应该已经会熟练掌握了,下来我们主要探讨一下后端怎么反向调用前端的js方法;

就如前两篇说到了用dwr注册了两个service组件,一个是remote,另外一个是页面使用到的controller,这个remote是在页面一加载进来就会被调用的,这样就使得会话和页面scriptsession建立了绑定的关系,方便我们后面使用它的scriptsessionid进行页面定向推送;

下面是建立会话和页面scriptsession的方法(页面刚加载进来的时候就会被调用的):  

scriptsession scriptsession = webcontextfactory.get().getscriptsession(); 
string jsessionid = scriptsession.gethttpsessionid(); 
string dwrsessionid = scriptsession.getid(); 
logger.info(string.format("set jsessionid = [%s],dwrsession = [%s] push enabled",jsessionid,dwrsessionid)); 
constantcacheservice.putcacheconstant(constants.push_id+jsessionid, dwrsessionid);
下面是用来反向调用前端的service方法:
@service("dwrreverseajaxservice")
public class dwrreverseajaxservice {
private static final logger logger = loggerfactory.getlogger(dwrreverseajaxservice.class);
public void directwebremotingwithsession(httpsession session, final string functionname) 
{assert.notnull(session, "[dwr reverse ajax] session can not be null!");
final string scriptsessionid = constantcacheservice.getcacheconstantvalue(constants.push_id + session.getid());
logger.info("[dwr session id] = " + scriptsessionid + " [script function name] = " + functionname);browser.withsession(scriptsessionid, new runnable() {
public void run() {scriptsessions.addfunctioncall(functionname, "");
}});}}

这个service是利用了scriptsessionid来进行反向定位推送的,而这个scriptsessionid是利用我们之前页面刚加载进来就建立好保存到的一个全局的map对里面;

下来只要在你想要什么时候调用的时候使用注册的这个service bean就可以了,传进去的参数为httpsession和你想调用的前端js funciton name,同时注意一下当前页面存在这个js function,而且一般是主页面的js里面的方法才能被访问到,否则前端会提示该方法未定义的错误;

以上就是关于dwr的简单应用,纯属第一次用,有什么不对的地方,请大家指正出来,感激不尽啊!大神请飘过~~~~~;

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网