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

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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值