您的位置:首页 > 编程语言 > Java开发

使用JSON-RPC-Java完成Ajax交互

2011-03-07 22:52 387 查看
JSON-RPC-Java是一个开源Ajax框架,能够让javascript直接调用后台的Java程序。

下载地址:http://oss.metaparadigm.com/jsonrpc

注意:构筑工程需要用到jsonrpc-1.0.jar,以及开源包webapps/jsonrpc下jsonrpc.js文件。

web.xml文件:


<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>jsonServlet</servlet-name>
<servlet-class>com.metaparadigm.jsonrpc.JSONRPCServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jsonServlet</servlet-name>
<url-pattern>/myjson</url-pattern>
</servlet-mapping>
</web-app>


创建此Ajax需要调用的Java Class 例如:

package cn.jsprun.base;
import java.util.List;
import cn.jsprun.domain.PrlCategory;
import cn.jsprun.service.PrlCategoryService;
public class AjaxBean extends BaseLog{

public String[][] getSubCategory(int cateId){

PrlCategoryService service = new PrlCategoryService();
PrlCategory cate = service.getCateById(cateId);

String[][] options = new String[cate.getSubCate().size()][2];

for(int i=0;i<cate.getSubCate().size();i++){
options[i][0]=String.valueOf(cate.getSubCate().get(i).getCateId());
options[i][1]=cate.getSubCate().get(i).getCateName();
}
return options;
}

public String[][] getPrtCategory(){

PrlCategoryService service = new PrlCategoryService();
List<PrlCategory> cates = null;
try{
cates = service.getAllCate();
}catch (Exception e) {
e.printStackTrace();
}

String[][] options = new String[cates.size()][2];

for(int i=0;i<cates.size();i++){
options[i][0]=String.valueOf(cates.get(i).getCateId());
options[i][1]=cates.get(i).getCateName();
}
return options;
}

private int getSubCateMaxLength(List<PrlCategory> list){

int value = 1;
for(PrlCategory tmp : list){
if(value<tmp.getSubCate().size()){
value = tmp.getSubCate().size();
}
}
return value;
}
}


创建需要调用Ajax的Jsp页面 例如:(这里只写出了重要部分)

<!-- 创建Ajax的bean 这里固定的只需复制粘贴 -->
<jsp:useBean id="JSONRPCBridge" scope="session" class="com.metaparadigm.jsonrpc.JSONRPCBridge"/>
<!-- 这里填写实现Ajax的Java文件(AjaxBean)依据自己的包路径填写 -->
<jsp:useBean id="ajax" class="cn.jsprun.base.AjaxBean"></jsp:useBean>
<%
JSONRPCBridge.registerObject("ajax",ajax);
%>
<html>
<head>
<!- 引入Ajax的Js文件 -->
<mce:script type="text/javascript" src="../JS/jsonrpc.js" mce_src="JS/jsonrpc.js"></mce:script>
</head>
<body>
</body>
<mce:script language="javascript"><!--
//这里调用实现Ajax调用的

//固定只需复制粘贴
jsonrpc = new JSONRpcClient("../JSON-RPC");
//getPrtCategory()此方法为实现Ajax方法的Java类(AjaxBean)的方法
//获取的结果存入result,这样你就可以用js处理获取的值了
var result = jsonrpc.ajax.getPrtCategory();
// --></mce:script>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: