Atitit.atiDataStoreService   v2 新特性

1.1. V1  基础实现1

1.2. V2  增加了对  $uuid  $cur_uid参数的支持1

1.3. 增加了fld fun的支持1

2. fld fun1

2.1. Invoke   简化版全局函数txt2html1

2.2. ---------atiDataStoreService   .js1

2.3. dslUtil2

2.4. jAva3

3. code4

1.1. V1  基础实现

1.2. V2  增加了对  $uuid  $cur_uid参数的支持

1.3. 增加了fld fun的支持

2. fld fun

2.1. Invoke   简化版全局函数txt2html

cmsPhone4jobusImp/edit.html

<textarea id="copy_content" name="copy_content" style="width:100%; height: 300px;" fun="txt2html">工作日期

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

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

2.2. ---------atiDataStoreService   .js

function merge(metaData,merge_callback_fun)

{

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

var fldAppFun=dslUtil.getFldAppFun(  mp);

mp=mp+"&$method=com.attilax.urldsl.UrlDsl2SqlStoreService.exe&$callback=page_load_callback&$mod=userMod&$view_store_path=com/attilax/order&$op=insert&"+metaData+"&$fldAppFun="+encodeURIComponent(fldAppFun);

//alert("get post mp:"+mp);

HRE.method="post";

try{

if( arguments.length==1)

HRE.exe(mp,merge_callback);

else

HRE.exe(mp,merge_callback_fun);

}catch(e)

{

showErr(e);

}

}

2.3. dslUtil

var dslUtil={};

dslUtil.getFldAppFun=function(url)

{

var json={};

var keys=urlUtil.getKeys(url);

for(e in keys )

{

var key=keys[e];

key=decodeURIComponent(key);

varkey_for_jq=escapeJquery(key);

//alert(key_for_jq);

var fun=$("#"+key_for_jq).attr("fun");

if(fun)

json[key]=fun;

}

return  JSON.stringify(json);

};

2.4. jAva

*/

public class UrlDsl2SqlStoreService extends Dsl2sqlService {

public static Map<String, Function> scriptMapper = Maps.newLinkedHashMap();

{

scriptMapper.put("txt2html", (txt) -> {

return htmlx.txt2html(txt.toString());

});

}

DslUtil.appFldFun(m);

public class DslUtil {

public static void appFldFun(Map m) {

if(m.get("$fldAppFun" )==null || m.get("$fldAppFun" ).toString().trim().length()==0)

return;

String json_str=(String) m.get("$fldAppFun");

Map fldFunMap=AtiJson.fromJson(json_str);

Set<String> st = fldFunMap.keySet();

for (String k : st) {

String script_tag=(String) fldFunMap.get(k);

Function fun=UrlDsl2SqlStoreService.scriptMapper.get(script_tag);

Object v=fun.apply(m.get(k));

m.put(k, v);

}

}

}

3.  code

package com.attilax.urldsl;

import java.util.HashMap;

import java.util.Map;

import java.util.Set;

import java.util.function.Function;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang3.StringUtils;

import com.attilax.anno.Inj;

import com.attilax.html.htmlx;

import com.attilax.io.filex;

import com.attilax.ioc.IocXq214;

import com.attilax.lang.Global;

import com.attilax.lang.MapX;

import com.attilax.net.requestImp;

import com.attilax.sql.Dsl2sqlService;

import com.attilax.sql.SqlService;

import com.attilax.store.OrmStoreService;

import com.attilax.token.TokenService;

import com.attilax.user.NotLoginEx;

import com.attilax.web.ReqX;

import com.google.common.collect.Maps;

import com.google.inject.Inject;

/**

* q317 com.attilax.urldsl.UrlDsl2SqlStoreService

*

* @author Administrator

*

*/

public class UrlDsl2SqlStoreService extends Dsl2sqlService {

public static Map<String, Function> scriptMapper = Maps.newLinkedHashMap();

{

scriptMapper.put("txt2html", (txt) -> {

return htmlx.txt2html(txt.toString());

});

}

@Inject

SqlService sqlSrv;

@Inject

Dsl2sqlService d2sSrv;

@Inject

TokenService tkSrv;

public static void main(String[] args) {

requestImp m = new requestImp();

m.put("$tb", "wxb_good_copy");

// m.put("$tabletype", "view");

// m.put("$view_store_path","com/attilax/order");

m.put("$op", "i");

m.put("copy_title", "copy_title_2005");

Global.req.set(m);

System.setProperty("apptype", "jobus");

// OrmStoreService ormSvr = IocXq214.getBean(OrmStoreService.class);

UrlDsl2SqlStoreService srv = IocXq214

.getBean(UrlDsl2SqlStoreService.class);

// Map m=new HashMap();

System.out.println(srv.exe());

System.out.println("--f");

}

public Object exe() {

HttpServletRequest req = Global.req.get();

tkSrv.setModule(req.getParameter("$utype") + "Mod");

Map m = ReqX.toMap(req);

if (m.get("$table") == null)

m.put("$table", m.get("$tb"));

if (m.get("$op").equals("i"))

m.put("$op", "insert");

Set<String> st = m.keySet();

for (String k : st) {

if (m.get(k).equals("$cur_uid")) {

String getuid = tkSrv.getuid(req);

if (StringUtils.isEmpty(getuid))

throw new NotLoginEx("NotLoginEx");

m.put(k, getuid);

}

if(m.get(k).toString().equals("$uuid"))

{

m.put(k,filex.getUUidName());

}

}

DslUtil.appFldFun(m);

String sql = d2sSrv.dsl2sql(m);

if (StringUtils.isEmpty(sql))

throw new RuntimeException(

" cant convert sql str rzt is null or empty");

return sqlSrv.exe(sql);

}

}

Atitit.atiDataStoreService   v2 新特性的更多相关文章

  1. atitit.atiLinq v2新特性attilax大总结 q326

    atitit.atiLinq v2新特性attilax大总结 q326 1. V3规划 (分开sql2obj sql2sql sql2xml)1 2. V2新特性 Url linq的定义1 3. V1 ...

  2. Atitit. Toast alert loading js控件   atiToast v2新特性

    Atitit. Toast alert loading js控件   atiToast v2新特性 1. 连续多个txt追加的原理 var txt = document.createElement(& ...

  3. Atitit  atiMail atiDns新特性 v2  q39

    Atitit  atiMail atiDns新特性 v2  q39 V1  实现了基础的功能 V2  重构..使用自然语言的方式 c.According_to_the_domain_name(&quo ...

  4. Atitit opencv版本新特性attilax总结

    Atitit opencv版本新特性attilax总结 1.1. :OpenCV 3.0 发布,史上功能最全,速度最快的版1 1.2. 应用领域2 1.3. OPENCV2.4.3改进 2.4.2就有 ...

  5. Atitit s2018 s3 doc list alldvc.docx .docx s2018 s3f doc compc s2018 s3f doc homepc sum doc dvcCompc dtS312 s2018 s3f doc compc\Atitit PathUtil 工具新特性新版本 v8 s312.docx s2018 s3f doc compc\Atitit 操作日

    Atitit s2018 s3 doc list alldvc.docx .docx s2018 s3f doc compc s2018 s3f doc homepc sum doc dvcCompc ...

  6. Atitit.cateService分类管理新特性与设计文档说明v1

    Atitit.cateService分类管理新特性与设计文档说明v1 1. V2 新特性规划1 2. 分类管理1 3. 分类增加与修改维护2 4. Js控件分类数据绑定2 1. V2 新特性规划 增加 ...

  7. Atitit.aticmd v4  新特性q39 添加定时器释放功能

    Atitit.aticmd v4  新特性q39 添加定时器释放功能 V1  实现兰cmd V2 标准输入,标准输出,标准错误与重新定向 V3  stdout stderr统一重新定向 V4  添加定 ...

  8. Atitit.linux 内核 新特性 新功能

    Atitit.linux 内核 新特性 新功能 1.  Linux 3.2内核新特性 2012-02-12 22:41:471 1.1. EXT4:支持更大的块2 1.2. BTRFS:更快的数据清理 ...

  9. Atitit.jquery 版本号新特性attilax总结

    Atitit.jquery 版本号新特性attilax总结 1. Jq1.4 1 2. 1.5 1 3. 1.6 3 4. Jq1.7 3 ⒉提升了事件委派时的性能有了大幅度的提升.尤其是在ie7下: ...

随机推荐

  1. 22、Django实战第22天:课程评论

    1.编辑course-comment.html 2.编辑courses.views.py class CourseCommentView(LoginRequiredMixin, View): def ...

  2. 3.3常用类(java学习笔记)Runtime与Process

    一.Runtime 我们来看下文档中对Runtime的说明: 每一个java程序都有一个属于Runtime类的实例,它允许程序连接到程序运行环境. 当前runtime可以用getRuntime()方法 ...

  3. FCL研究-目录

    准备深入的学习下 FCL,太过于庞大,有些无从下口.用最笨的方法,先从常用的几个命名空间入手. 微软发布了.NET 的源码,学习起来更加方便了. 集合 导航: FCL研究-集合- System.Col ...

  4. Python的hashlib

    Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制 ...

  5. log4j在Web项目中的使用

    导入log4j的jar包 在web.xml上配置如下:   <!-- 配置log4j begin -->   <context-param>     <param-nam ...

  6. Ubuntu 16.04使用rm -rf误删文件恢复方法收集

    说明:不一定有效,需要不断尝试 一.lsof 文件刚刚被删除,想要恢复,先尝试lsof. lsof |grep data.file1 cp /proc/xxx/xxx/xx /dir/data.fil ...

  7. 简单说说DNS劫持_firefox吧_百度贴吧

    简单说说DNS劫持_firefox吧_百度贴吧 DNSSEC

  8. Using Dtrace OEL 6.X and Oracle® Solaris 11.3 DTrace (Dynamic Tracing) Guide

    http://www.hhutzler.de/blog/using-dtrace/ https://docs.oracle.com/cd/E53394_01/html/E53395/gkyaz.htm ...

  9. css:滑动门

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. Linux下获取本机IP地址的代码

    Linux下获取本机IP地址的代码,返回值即为互联网标准点分格式的字符串. #define ETH_NAME "eth0" //获得本机IP地址 char* GetLocalAdd ...