①、在正常配置DWR(包括reverse ajax配置)及JSF之后在web.xml中做如下定義: ? ???? < filter > ???????? < filter-name > DwrFacesFilter </ filter-name > ???????? < filter-class > ????????????org.directwebremoting.faces.FacesExtensionFilter ???????? </ filter-class > ???? </ filter > ???? < filter-mapping > ???????? < filter-name > DwrFacesFilter </ filter-name > ???????? < url-pattern > /dwr/* </ url-pattern > ???? </ filter-mapping > ? ②、在jsp頁面中,引入DWR的一些js腳本,并編寫你自己的javascript,例如: ?? < script?type = ' text/javascript ' ?src = ' /DWRTest/dwr/engine.js ' > ? </ script > ?? < script?type = ' text/javascript ' ?src = ' /DWRTest/dwr/util.js ' > ? </ script > ?? < script > ?? function ?alertTest(msg) ... { ???alert(msg); ??} ?? </ script > ? 在<body>標簽中增加一個reverse ajax的顯式設置:<body onload="dwr.engine.setActiveReverseAjax(true);"> ③、ManagedBean中,寫一個actionListener方法 ?FacesContext?facesContext? = ?FacesContext.getCurrentInstance(); ?ServletContext?servletContext? = ?(ServletContext)facesContext.getExternalContext().getContext(); ?ServerContext?sctx? = ?ServerContextFactory.get(servletContext); Collection?sessions? = ?sctx.getScriptSessionsByPage( " /DWRTest/test.faces " ); Util?pages? = ? new ?Util(sessions); pages.addFunctionCall( " alertTest " ,? " hello?dwr " ); ? 注意,不能采用DWR在普通jsp中獲取ServletContext的方法,因為在那種方式中,URL的解析是通過DWRServlet解析的,而在JSF中是由FacesServlet來解析的,所以使用WebContextFactory.get().getServletContext() 會得到NullPointerException. 此處不用在dwr.xml中定義相應的內容,因為客戶端不需要調用服務器端,而是服務器端調用客戶端。? JSF與DWR的整合 更多文章、技術交流、商務合作、聯系博主 微信掃碼或搜索:z360901061 微信掃一掃加我為好友 QQ號聯系: 360901061 您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。 【本文對您有幫助就好】元 2元 5元 10元 20元 自定義 喜歡作者