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

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

(JimstoneAjax交流群:366984517)

准备工作

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

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

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

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

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

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 包下。

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

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

把 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>
点击链接可以直接看到执行结果啦。


完整的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,function(data) { alert(data.datas); });" href="javascript:void(0);">取最大值</a><br>
    <a onclick="firstModel.testMin(50,function(data) { alert(data.message); });" href="javascript:void(0);">取最小值</a><br>
    <a onclick="firstModel.testMin(50,function(data) { alert(data.message); alert(data.datas); });" href="javascript:void(0);">再取最小值</a>
  </body>
</html>

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

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...