Dwr3.0純注解(純Java Code設置裝備擺設)設置裝備擺設與運用淺析三以後端反向挪用前端。本站提示廣大學習愛好者:(Dwr3.0純注解(純Java Code設置裝備擺設)設置裝備擺設與運用淺析三以後端反向挪用前端)文章只能為提供參考,不一定能成為您想要的結果。以下是Dwr3.0純注解(純Java Code設置裝備擺設)設置裝備擺設與運用淺析三以後端反向挪用前端正文
在前兩篇中我們曾經引見了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的簡略運用,純屬第一次用,有甚麼纰謬的處所,請年夜家斧正出來,感謝不盡啊!年夜神請飄過~~~~~;