轻松架设基于JimStoneAjax的Ajax运行环境

    JimStoneAjax是一套灵活的远程调用JavaBean的Ajax框架,部署环境很简单。

    (JimStoneAjax交流群:366984517)

    准备工作

  • Spring MVC
  • JimStoneAjax

    进入[下载]页面,选择“完整包进行下载。完整包主要包含以下文件:

    轻松架设基于JimStoneAjax的Ajax运行环境 

    那么我们开启这段旅程吧。

  1. 首先,创建一个Spring MVC的 web 项目并将相关包拖入项目库目录下。

        具体的 Spring MVC项目的创建细节不在本文的讲解范围之内。

       创建好项目后,启用 Spring 注解,将相关的 Jar 包拷贝到项目的lib目录下。

              轻松架设基于JimStoneAjax的Ajax运行环境

    2、从jimstone-ajax-release-x.x.jar中将默认配置文件和控制器文件拉入项目

        从 jimstone-ajax-release-x.x.jar 中拖出配置文件jsajax.properties和控制器模版STAjaxCtrlDefault.java到我们的项目资源src目录下。其中STAjaxCtrlDefault.java 为一个标准的Spring MVC控制器,我们将这个文件放到 com.jsajax.test 包下。

        轻松架设基于JimStoneAjax的Ajax运行环境

        轻松架设基于JimStoneAjax的Ajax运行环境

    3、创建对外开放的Service服务类

        创建一个服务类FirstModel,最好继承自 STAjaxRender 类。当然,也可以通过实现接口 ISTAjaxModel 来把服务公开出来。

        轻松架设基于JimStoneAjax的Ajax运行环境

        把 FirstModel 类通过注解注入为Service。


@Service("firstModel")
public class FirstModel extends STAjaxRender{

}


    4、编写对外开放的方法

        从 FirstModel 中加入一个取最大值的方法。这里要注意的是,JimStoneAjax 框架通过返回类型来限定是否方法对外公开的,所有所有纯粹取运行返回结果的方法都需要通过 STDataResult 对象包装一下。

public STDataResult<Long> testMax(Long a, Long b) {
	return STDataResult.successByDatas((a>b) ? a : b); 
}

         STDataResult 对象包装的很好,很适合用作默认的 Ajax 应用返回值,下面给出几个常用的构造方法说明:

             STDataResult.succ()

             - 返回状态为成功,直接返回

             STDataResult.succByMessage(message)
             - 返回状态为成功,并且设置一条自定义成功的消息

             STDataResult.succByMessage(message, data)
             - 返回状态为成功,并且设置一条自定义成功的消息同时返回成功的结果

             STDataResult.successByDatas(data)
             - 返回状态为
成功,并且直接返回成功的结果

             STDataResult.err()
             - 返回状态为失败,直接返回

             STDataResult.err(message)
             - 返回状态为失败,并且返回自定义的失败消息

             STDataResult.err(errorCode)
             - 返回状态为失败,通过错误码设置失败消息

             STDataResult.errorWithParams(errorCode, Object...params)
             - 返回状态为失败,通过错误码设置失败消息,并且动态传入变量组织失败文本


        我们再实现一个取最小值的方法。这次的要求是第一个参数不能小于5,第二个参数不能大于100,并且成功的时候有个友好的提示。

public STDataResult<Long> testMin(Long a, Long b) {
	if (a < 5) {
		return STDataResult.err("第一个参数不能小于5");
	}
	if (b > 100) {
		return STDataResult.err("第二个参数不能大于100");
	}
	return STDataResult.succByMessage("获取最小值成功", (a>b) ? b : a); 
}

    5、从客户端直接调用

        创建 index.jsp,加入标签引用。

<%@ taglib uri="http://www.jimstone.com/ajax" prefix="ajax" %>
        JimStoneAjax默认生成器生成的客户端JS要用到jquery,所以要加入 JQuery 引用。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
        通过标签做脚本引入。

<ajax:script value="firstModel" json="true"></ajax:script>
        在HTML内容段直接调用。

<a onclick="firstModel.testMax(15, 20, function(data) { alert(data.datas); });" href="javascript:void(0);">取最大值</a><br>
<a onclick="firstModel.testMin(50, 105, function(data) { alert(data.message); });" href="javascript:void(0);">取最小值</a><br>
<a onclick="firstModel.testMin(50, 30, function(data) { alert(data.message); alert(data.datas); });" href="javascript:void(0);">再取最小值</a>
        点击链接可以直接看到执行结果啦。

轻松架设基于JimStoneAjax的Ajax运行环境轻松架设基于JimStoneAjax的Ajax运行环境

    完整的HTML请看下边:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.jimstone.com/ajax" prefix="ajax" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>MyAjaxTest</title>
	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
	<ajax:script value="firstModel" json="true"></ajax:script>
  </head>
  <body>
    <a onclick="firstModel.testMax(15, 20, function(data) { alert(data.datas); });" href="javascript:void(0);">取最大值</a><br>
    <a onclick="firstModel.testMin(50, 105, function(data) { alert(data.message); });" href="javascript:void(0);">取最小值</a><br>
    <a onclick="firstModel.testMin(50, 30, function(data) { alert(data.message); alert(data.datas); });" href="javascript:void(0);">再取最小值</a>
  </body>
</html>

是不是很简单啊!如果你的项目本来就是基于Spring的,调用 JimStoneAjax 基本上引入相关JAR包,写个 Service,页面上就能直接用啦。确实很方便。 

你可能感兴趣的:(spring,Ajax,Ajax,DWR,JimStoneAjax,JimStone)