JimStoneAjax是一套靈活的遠程調用JavaBean的Ajax框架,部署環境很簡單。 javascript
(JimStoneAjax交流羣:366984517) html
準備工做: java
進入[下載]頁面,選擇「完整包」進行下載。完整包主要包含如下文件:
jquery
那麼咱們開啓這段旅程吧。 web
具體的 Spring MVC項目的建立細節不在本文的講解範圍以內。 ajax
建立好項目後,啓用 Spring 註解,將相關的 Jar 包拷貝到項目的lib目錄下。
spring
二、從jimstone-ajax-release-x.x.jar中將默認配置文件和控制器文件拉入項目 json
從 jimstone-ajax-release-x.x.jar 中拖出配置文件jsajax.properties和控制器模版STAjaxCtrlDefault.java到咱們的項目資源src目錄下。其中STAjaxCtrlDefault.java 爲一個標準的Spring MVC控制器,咱們將這個文件放到 com.jsajax.test 包下。
api
三、建立對外開放的Service服務類 app
建立一個服務類FirstModel,最好繼承自 STAjaxRender 類。固然,也能夠經過實現接口 ISTAjaxModel 來把服務公開出來。
把 FirstModel 類經過註解注入爲Service。
@Service("firstModel") public class FirstModel extends STAjaxRender{ }
四、編寫對外開放的方法
從 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); }
五、從客戶端直接調用
建立 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, 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,頁面上就能直接用啦。確實很方便。