zoukankan      html  css  js  c++  java
  • 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="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);
    }
  • 相关阅读:
    [note]抽象类和接口的相同点和不同点
    百度竞价门再跟踪:违规医疗广告数量仍大幅增加
    获取拼音的第一个字母的方法
    一个分页存储过程
    正则表达式(Regular Expressions)
    四个故事
    Oracle 常用
    我很喜欢的一个[帖子]:从现在起,我开始还债。
    DataGrid 中的 HyperLinkColumn (可以携带多个Get参数)
    100 statements in English.
  • 原文地址:https://www.cnblogs.com/stono/p/4831898.html
Copyright © 2011-2022 走看看