博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Atitit.wrmi web rmi框架新特性
阅读量:5798 次
发布时间:2019-06-18

本文共 2761 字,大约阅读时间需要 9 分钟。

Atitit.wrmi web rmi框架新特性

 

1V1d  新特性1

1.1. 增加了精确参数1

1.2. 增加了req参数,命名参数模式。。1

1.3. 增加了globale  传递隐含参数req resp1

1.4. Cs bs两个版本的实现1

2V2 新特性2

2.1. $req对象预定义参数的支持2

2.2. 动态ioc   IocXq2142

2.3. end4

 

 

1. V1d  新特性

1.1. 增加了精确参数

1.2. 增加了req参数,命名参数模式。。

增加了对req参数的处理

var mp=$("form").serialize();

  mp=mp+"&$method=com.attilax.bet.BetService.bet&$callback=get_posts_callback¶m1=$req";

 

1.3. 增加了globale  传递隐含参数req resp

1.4. Cs bs两个版本的实现

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

 

2. V2 新特性

2.1. $req对象预定义参数的支持

2.2. 动态ioc   IocXq214

 

 

 

package com.attilax.wrmi;

 

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

 

import javax.servlet.http.HttpServletRequest;

 

import org.apache.commons.lang3.reflect.ConstructorUtils;

import org.apache.commons.lang3.reflect.MethodUtils;

 

 

 

//import com.attilaax.encode.EncodeX;   sould recomm q229 ati

import com.attilax.core;

import com.attilax.ioc.IocXq214;

import com.attilax.lang.Global;

import com.attilax.lang.ParamX;

import com.attilax.ref.refx;

import com.attilax.web.ReqX;

import com.google.common.collect.Maps;

 

 

/**

 * $method=com.attilax.jsna.test.add

 * @author Administrator

 *

 */

public class Wrmi {

 

/**

 * def output raw type ..if list map object use json fmt

 * 

 * @param req

 * @return

 */

@SuppressWarnings("all")

public String exe(Map m) {

//Map m=Maps.newLinkedHashMap();

//if(req2 instanceof String)  //cs envi 

//  m = new ParamX().urlParams2Map((String) req2);

// 

 

 

Object[] params_objArr = getParamsArr(m);

String meth = (String) m.get("$method"); 

String classname = refx.getClassName(meth);

String meth_name = refx.getMethodName(meth);

 

 

Object o;

 

try {

// String apptype=System.getProperty("apptype");

o =  IocXq214.getBean(classname);

Object invokeMethod_ret = com.attilax.reflect.MethodUtils.invokeMethod(ometh_name,

params_objArr);

String ret = "";

if (invokeMethod_ret instanceof String)

ret = (String) invokeMethod_ret;

if (invokeMethod_ret instanceof Integer || invokeMethod_ret instanceof Double)

ret =  invokeMethod_ret.toString();

else

ret = core.toJsonStrO88(invokeMethod_ret);

 

return ret;

catch (Throwable e) {

e.printStackTrace();

return core.toJsonStrO88(e);

 

}

 

}

 

private Object[] getParamsArr(Map m) {

List paras_li = new ArrayList();

//m.get("param")

if (m.get("param") != null)

paras_li.add(convertReqObjParams( m.get("param")));

for (int i = 0; i < 7; i++) {

String param_index = "param" + String.valueOf(i);

if (m.get(param_index) != null)

paras_li.add(convertReqObjParams(m.get(param_index)));

 

}

Object[] params_objArr = paras_li.toArray();

return params_objArr;

}

 

private Object convertReqObjParams(Object object) {

if(object.toString().trim().equals("$req"))

return Global.req.get();

return object;

}

 

 

 

}

 

 

2.3. end

 

你可能感兴趣的文章
有关GitHub仓库分支的几个问题
查看>>
无服务器计算的黑暗面:程序移植没那么容易
查看>>
云原生的浪潮下,为什么运维人员适合学习Go语言?
查看>>
Webpack入门教程三十
查看>>
EAServer 6.1 .NET Client Support
查看>>
锐捷交换机密码恢复(1)
查看>>
Kali linux virtualbox rc=1908 错误解决办法
查看>>
Erlang学习总结之Erlang语法中的逗号(,)、分号(;),句号(.)的正确用法...
查看>>
linux软件包管理之三(源代码安装)
查看>>
数据库三范式是什么?
查看>>
[转载]设置Ubuntu自动连接无线,无须再输入密钥环和无线密码
查看>>
九叔Xen App测试报告
查看>>
Apache配置
查看>>
Ext gridPanel 单元格数据的渲染
查看>>
Android SDK 的下载代理
查看>>
Method Swizzling对Method的要求
查看>>
佛祖保佑,永不宕机
查看>>
四、配置开机自动启动Nginx + PHP【LNMP安装 】
查看>>
LNMP一键安装
查看>>
SQL Server数据库概述
查看>>