关于spring和extjs对接的过程简述

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    <context-param>
        <param-name>resteasy.servlet.mapping.prefix</param-name>
        <param-value>/rest</param-value>
    </context-param>
    <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>classpath:log4j.properties</param-value>
    </context-param>

    <listener>
        <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
    </listener>

      <listener>
        <listener-class>org.jboss.resteasy.plugins.spring.SpringContextLoaderListener</listener-class>
    </listener>

    <servlet>
        <servlet-name>RestEasy</servlet-name>
        <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>RestEasy</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>

    <!-- 编码 -->
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>
<?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:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
           http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">

    <context:component-scan base-package="lmx.phone" />
</beans>
package lmx.phone.service;

import javax.ws.rs.GET;
import javax.ws.rs.Path;

import lmx.phone.util.ExtJSResponse;

import org.springframework.stereotype.Service;

@Service
@Path("esper")
public class EsperService {

    @Path("phone")
    @GET
    public ExtJSResponse phoneService() {
        System.out.println("rest works");
        return null;
    }

}
package lmx.phone.util;

import java.util.HashMap;

/**
 * used to integrates with ExtJS 4.x data stores.<br>
 * In ExtJS, the data store use following format to verify the result:
 * <p/>
 * <pre>
 *  "{"success":false,"data":"","message":"VERBOSE ERROR"}"
 * </pre>
 *
 * @author MiXian
 */
public class ExtJSResponse extends HashMap<String, Object> {
    /**
     *
     */
    private static final long serialVersionUID = -2791356338016228077L;

    public static ExtJSResponse successRes() {
        return new ExtJSResponse(true);
    }

    public static ExtJSResponse successRes4Find(Object data,Integer total) {
        ExtJSResponse res = new ExtJSResponse(true);
        res.setData(data);
        res.put("total",total);
        return res;
    }

    public static ExtJSResponse successResWithData(Object data) {
        ExtJSResponse res = new ExtJSResponse(true);
        res.setData(data);
        return res;
    }

    public static ExtJSResponse errorRes(String error) {
        ExtJSResponse res = new ExtJSResponse(false);
        res.setErrorMsg(error);
        return res;
    }

    public ExtJSResponse() {
    }

    public ExtJSResponse(boolean success) {
        super();
        setSuccess(success);
    }

    public boolean isSuccess() {
        return (Boolean) get("success");
    }

    public void setSuccess(boolean success) {
        put("success", success);
    }

    public void setErrorMsg(String errorMsg) {
        put("error", errorMsg);
    }

    public String getErrorMsg() {
        return (String) get("error");
    }

    public void setData(Object data) {
        put("data", data);
    }

    public Object getData() {
        return get("data");
    }

}

关于前台和后台之间的交互:

1、extjs发送ajax请求,以“/rest/*”的形式。

2、web.xml捕捉到请求之后,将请求发给DispatherServlet

3、DispatherServlet将请求发给配置的package

4、package扫描所有的“@service”类,寻找匹配的方法来处理请求,并返回给前端一个json数据串。json数据串通过ExtjsResonse来生成一个基本的内容。

5、前端根据json数据串来改变前端的内容

时间: 2024-11-14 17:40:51

关于spring和extjs对接的过程简述的相关文章

PMD安装过程简述及使用样例

安装环境:操作系统:win8.1 必备条件:eclipse 安装过程简述: 1.打开eclipse,选择Help->Install New Software 2.点击Add,输入地址http://sourceforge.net/projects/pmd/files/pmd-eclipse/update-site/ 3.稍等片刻,选择要安装的PMD for eclipse4 点击next 5.选next,出现一个协议,选择accept,然后finish 7.开始下载和安装 8.安装完成提示重启ec

FindBugs安装过程简述及使用样例

安装环境:操作系统: win8.1 必备条件:eclipse 安装过程简述: 1. 打开Eclipse, 工具栏选择help,下拉选框中选择 install new software 2. 点击Add,在Location中输入:http://findbugs.cs.umd.edu/eclipse 4. 稍等片刻, 勾选FindBugs, 点击Next按钮 5. 点击Next按钮,中间出现协议,选择accept,然后点击finish按钮 6.等待安装,安装完毕后,提示重启Eclipse 7.重启后

Checkstyle安装过程简述及使用样例

必备条件: eclipse 安装过程简述: 1.打开eclipse, 工具栏选择Help,下拉选项中选择 Install New Software 2.点击Add,输入在location框中输入地址http://eclipse-cs.sourceforge.net/update,点ok 3.出现pending时等待一下,出现如下图字样是,勾选要安装的checkstyle并点击next 4.此时若卡在 calculating requirements and dependencies ,如下图 5

source monitor安装过程简述及使用样例

安装环境:操作系统:win8.1 安装过程简述: 1.下载source monitor的安装文件并打开,选择next 2.选择accept接收协议 后next 3.准备好,选择next 4. 选择安装路径,可根据个人习惯选择 5.选择folder,可使用默认 6.安装完成启动 使用样例: 1.工具栏中点击file->new project新建工程 2.选择源代码语言 3.选择检测结果存储路径 4.选择待检测工程 5.选择检测其他选项 6.设定检测点的名称 7.选择完成,开始检测 8.检测结果

Spring之IOC容器初始化过程

Ioc容器的初始化是由refresh()方法来启动的,这个方法标志着Ioc容器的正式启动. 具体来说这个启动过程包括三个基本过程: 1.BeanDifinition的Resource定位 2.BeanDifinition的载入与解析 3.BeanDifinition在Ioc容器中的注册 需要注意的是,Spring把这三个过程分开,并使用不同的模块来完成,如使用相应的ResourceLoader.BeanDifinitionReader等模块,通过这样的实际方式,可以让用户更加灵活的对这三个过程进

spring internalTransactionAdvisor 事务 advisor 初始化过程

spring internalTransactionAdvisor 事务 advisor 初始化过程: 原文地址:https://www.cnblogs.com/xiluhua/p/10200629.html

Spring Security 解析(二) —— 认证过程

Spring Security 解析(二) -- 认证过程 ??在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把Spring Security .Spring Security Oauth2 等权限.认证相关的内容.原理及设计学习并整理一遍.本系列文章就是在学习的过程中加强印象和理解所撰写的,如有侵权请告知. 项目环境: JDK1.8 Spring boot 2.x Spring Security 5.x 一.@EnableGlobalAuth

Spring IOC bean加载过程

首先我们不要在学习Spring的开始产生畏难情绪.Spring没有臆想的那么高深,相反,它帮我们再项目开发中制定项目框架,简化项目开发.它的主要功能是将项目开发中繁琐的过程流程化,模式化,使用户仅在固定文件中增加特定标签并实现特定逻辑层的代码就能完成项目开发.下面我们来分析web项目启动时bean的初始化过程. 我们遵循类的依赖,引用关系来理清spring在这一过程中的架构和细节实现.java web项目入口在web.xml,Spring在此配置入口servlet完成bean的加载.Dispat

spring + jdbc + extjs configuration

所有源代码能够訪问我的GitHub 有空没空的稻谷了几天,最终前后台跑通了,提供一套可用的配置文件. (因为与extjs整合,spring security的登录须要重写原handler.会在后面补上) 首先是pom.主要有junit.spring(mvc + security).log4j以及jdbc(mysql)依赖. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w