之前的web项目已经是基于Spring mvc框架的,现在需要在此基础上做一个动态网页刷新的功能,选用的是dwr的push技术,服务器端更新,立马在web页面上显示。
1.导入dwr.jar包
2.配置web.xml文件,所有的映射都被spring mvc的控制器进行截取,再由controller进行转发。
<servlet> <servlet-name>testdispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/config.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>testdispatcher</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>testdispatcher</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>
3.在web层的容器中配置dwr的相关信息。
<!-- 扫描注解的包 --> <context:component-scan base-package="springmvc"></context:component-scan> <!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/view/" p:suffix=".jsp" /> <!-- 通过注解,把URL映射到Controller上,该标签默认注册DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter --> <mvc:annotation-driven /> <!-- 要求DWR将util.js和engine.js映射到dwrController --> <dwr:url-mapping /> <!-- 配置dwr的控制器,如若要使用push,则必须设定activeReverseAjaxEnabled--> <dwr:controller id="dwrController" debug="true"> <dwr:config-param name="activeReverseAjaxEnabled" value="true" /> </dwr:controller> <dwr:configuration></dwr:configuration>
4.经过上述配置后,经过spring mvc 的controller所转发的都可以连接到web页面(dwr push),例如
ServerContext serverContext = ServerContextFactory.get(); Collection<ScriptSession> scriptSessions = serverContext .getAllScriptSessions(); Util util = new Util(scriptSessions); ScriptBuffer scriptBuffer = new ScriptBuffer(); //将object数据传给javascript中的showConvertOneTime()函数 scriptBuffer.appendScript("showConvertOneTime(").appendData(object) .appendScript(");"); util.addScript(scriptBuffer);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。