Spring MVC整合DWR
http://blog.csdn.net/geloin/article/details/7537148
基本上与上文描述的情况一致;
在Controller中可以进行Service层的调用;
如果需要返回对象,需要在spring-mvc.xml中进行配置:
<dwr:configuration>
<dwr:convert type="bean" class="com.srie.ljddml.orga.model.client.ClientUser"></dwr:convert>
</dwr:configuration>
springmvc.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
xsi:schemaLocation="http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.directwebremoting.org/schema/spring-dwr
http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd">
<!-- 注册XmlViewResolver,用于iReport & JasperReports报表生成 -->
<bean id="jasperReportResolver" class="org.springframework.web.servlet.view.XmlViewResolver">
<property name="order">
<value>0</value>
</property>
<property name="location">
<value>classpath:jasper-views.xml</value>
</property>
</bean>
<!-- spring mvc 注解驱动 -->
<mvc:annotation-driven />
<!-- 扫描器 -->
<context:component-scan base-package="com.srie.ljddml.controller" />
<!-- 配置视图 解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<!-- 前缀和后缀 -->
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<!-- 要求dwr在spring容器中检查拥有@RemoteProxy 和 @RemoteMethod注解的类。注意它不会去检查Spring容器之外的类。 -->
<dwr:annotation-config id="dwr" />
<!-- 要求DWR将util.js和engine.js映射到dwrController -->
<dwr:url-mapping />
<!-- 定义dwr -->
<dwr:controller id="dwrController" debug="true">
<dwr:config-param name="allowScriptTagRemoting" value="true" />
<dwr:config-param name="crossDomainSessionSecurity" value="false" />
</dwr:controller>
<!--设置需要dwr转化的实体类,格式为json传输到jsp页面 -->
<dwr:configuration>
<dwr:convert type="bean" class="com.srie.ljddml.orga.model.client.ClientUser"></dwr:convert>
</dwr:configuration>
<!-- 文件上传配置 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="50000000" />
</bean>
<!-- 从请求和响应读取/编写字符串 -->
<bean id="stringHttpMessage" class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
</list>
</property>
</bean>
<!-- 用于将对象转换为JSON -->
<bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="stringHttpMessage" />
<ref bean="jsonConverter" />
</list>
</property>
</bean>
</beans>
controller:
package com.srie.ljddml.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpSession;
import org.directwebremoting.annotations.RemoteMethod;
import org.directwebremoting.annotations.RemoteProxy;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import com.srie.ljddml.ddml.service.DdmlServiceI;
import com.srie.ljddml.orga.model.client.ClientUser;
import com.srie.ljddml.orga.service.OrgaServiceI;
@Controller
@RemoteProxy(name = "directController")
public class DirectController {
@Autowired
OrgaServiceI orgaService;
@Autowired
DdmlServiceI ddmlServiceI;
@RemoteMethod
public String getTest(String a) {
return "test" + a;
}
@RemoteMethod
public List<String> getList(HttpSession session) {
ClientUser user = (ClientUser) session.getAttribute("clientUser");
return orgaService.getUserAuthKeys(user);
}
@RemoteMethod
public ClientUser getUser(HttpSession session) {
ClientUser attribute = (ClientUser) session.getAttribute("clientUser");
return attribute;
}
@RemoteMethod
public List<ClientUser> getUserList(HttpSession session) {
ClientUser attribute = (ClientUser) session.getAttribute("clientUser");
List<ClientUser> list = new ArrayList<ClientUser>();
list.add(attribute);
return list;
}
@RemoteMethod
public Map<String, Object> getMsg(HttpSession session){
ClientUser user = (ClientUser) session.getAttribute("clientUser");
return ddmlServiceI.getMsg(user);
}
}
HTML:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'login.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link rel="stylesheet" type="text/css" href="js/b/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="css/mlbj.css">
<script src="js/b/js/jquery-1.11.1.min.js"></script>
<script src="js/b/js/bootstrap.min.js"></script>
<script src="js/login.js"></script>
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/directController.js"></script> </head>
<body class="container-fluid">
<div class="row">
<div class="left_menu col-xs-3 col-sm-3 col-md-2" id='divNavId' style="background:#ffffff;">
<div id='mlSxxx'>----xxx<span ></span>----</div> </div>
<div class="col-xs-9 col-sm-9 col-md-10">
<iframe id="rightIframe" scrolling="no" frameborder="0" src="uri/DdmlTransact.do" style="width:100%;height:99%;"></iframe>
</div>
</div>
</body>
</html>
js:
/**
* 页面加载之后执行的函数;
*/
$(function() {
loadMLAuths();
divMlSearchClick();
keepSession();
setInterval("getMsg()", 60000);
});
/**
* 全局变量定义部分;
*/
var i = 0;
/**
* 事件编写部分;
*/
// 加载消息函数
function getMsg() {
directController.getMsg(function(data) {
$.each(data, function(i, n) {
$("#" + i +" span").text(n);
});
});
}
/**
* 进行会话保持;
*/
function keepSession() {
window.setInterval("$.getJSON('orga/mlbj.do');", 120000);
}
Spring MVC整合DWR的更多相关文章
- Spring与Struts2整合VS Spring与Spring MVC整合
Spring与Struts2整合,struts.xml在src目录下 1.在web.xml配置监听器 web.xml <!-- 配置Spring的用于初始化ApplicationContext的 ...
- spring MVC 整合mongodb
Spring Mongodb 目录 1 SPRING整合MONGODB 1 1.1 环境准备 1 1.2 包依赖 1 1.3 配置 2 2 案列 5 2.1 SPRING MVC整合MONGODB代码 ...
- MyBatis+Spring+Spring MVC整合开发
MyBatis+Spring+Spring MVC整合开发课程观看地址:http://www.xuetuwuyou.com/course/65课程出自学途无忧网:http://www.xuetuwuy ...
- 【RabbitMQ系列】 Spring mvc整合RabbitMQ
一.linux下安装rabbitmq 1.安装erlang环境 wget http://erlang.org/download/otp_src_18.2.1.tar.gz tar xvfz otp_s ...
- Java基础-SSM之Spring和Mybatis以及Spring MVC整合案例
Java基础-SSM之Spring和Mybatis以及Spring MVC整合案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 能看到这篇文章的小伙伴,详细你已经有一定的Java ...
- spring mvc整合mybaitis和log4j
在上一篇博客中,我介绍了在mac os上用idea搭建spring mvc的maven工程,但是一个完整的项目肯定需要数据库和日志管理,下面我就介绍下spring mvc整合mybatis和log4j ...
- Spring MVC 整合Swagger的一些问题总结
在做Spring MVC 整合swagger的时候,遇到的两个问题: 第一个问题 在网上找了一些Spring MVC 和Swagger的例子,照着一步步的配置,结果,到最后,项目都起来了,没有任何问题 ...
- 【Java Web开发学习】Spring MVC整合WebSocket通信
Spring MVC整合WebSocket通信 目录 ========================================================================= ...
- MQTT 3 ——MQTT与Spring Mvc整合
本篇记录一下MQTT客户端与Spring Mvc整合 网络上已经有很多的MQTT客户端与SpringBoot整合的技术文档,但是与Spring Mvc框架的整合文档似乎并不太多,可能是因为Spri ...
随机推荐
- (困难) CF 484E Sign on Fence,整体二分+线段树
Bizon the Champion has recently finished painting his wood fence. The fence consists of a sequence o ...
- Task Cancellation: Parallel Programming
http://beyondrelational.com/modules/2/blogs/79/posts/11524/task-cancellation-parallel-programming-ii ...
- Bluez SPP实现代码分析(转)
源:http://blog.csdn.net/walkingman321/article/details/7218705 本文分析蓝牙协议栈中蓝牙转串口(SPP)部分的实现. 1. 基本概念 Blu ...
- js中的 AOP
原文 :http://blog.csdn.net/notejs/article/details/8770575 面向切面的编程(AOP)还是有点意思的,可以在不修改原有代码的情况下增加新功能.有一些j ...
- Lua学习笔记4. coroutine协同程序和文件I/O、错误处理
Lua学习笔记4. coroutine协同程序和文件I/O.错误处理 coroutine Lua 的协同程序coroutine和线程比较类似,有独立的堆栈.局部变量.独立的指针指令,同时又能共享全局变 ...
- posix第二篇-----linux 锁机制
1 简介 锁机制(lock) 是多线程编程中最常用的同步机制,用来对多线程间共享的临界区(Critical Section) 进行保护. Pthreads提供了多种锁机制,常见的有: 1) Mutex ...
- [转] Eclipse中已安装的插件如何卸载
转自 : http://blog.csdn.net/macong01/article/details/7631105 最近在Eclipse中安装了一个插件,导致Eclipse使用的时候有些问题,就找了 ...
- E/WindowState(643): getStack: Window{33f867f8 u0 Starting com.xxxxxx.ooooo}
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% ...
- 【转】101个MySQL调试和优化技巧
MySQL是一个功能强大的开源数据库.随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它的极限.这里是101条调节和优化MySQL安装的技巧.一些技巧是针对特定的安装环境的,但这些思 ...
- mac解压缩
tar 解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)---------------.gz解压1:gunz ...