标签归档:JAVASCRIPT

JavaScript Regex 替换下划线

代码如下:

<script language="javascript" >
        function regReplace_(s, f, t) { 
           var regex = new RegExp(f, 'gi'); 
           s = s.replace(regex, t); 
           return s; 
        }
        var s = 'Hello World !'; 
        s = regReplace_(s, '!', '$');
        alert(s);
        //替换下划线
        var s = 'Hello___World_ !'; 
        s = regReplace_(s, '_{1,}', '$');//'-{1,}'替换所有的'_'
        alert(s);
    </script>

 


其中 ‘gi’ 的 g 表示全部字串中出现符合的都替换,而 i 表示不分大小写。

 注意 f 必须是符合 Regular Expression 表示式的字串,左右不用加 / 符号。

json-rpc-for-java

强荐友人新RPC框架

XtZPStream_demo_V1.1.rar

来自java eye/it eye的1.0详细报道

特点是什么
1、JS2Java RPC:能够在javascript的web浏览器环境中指定java类,获取该类实例的属性,
调用该实例的方法

2、支持复杂js对象作为入参:能够传递复杂的JavaScript Object对象作为调用参数,
在java中得到对应的Map对象

3、自动压缩、解压传递的数据:调用过程中传递的数据自动进行压缩传输,后台自动解压,
然后转换为Map给开发人员;因此从一定层面上保护、加密了传输的数据

4、JS回调函数中能够接收java返回的复杂对象:java中可以返回复杂的对象,
比如Map、List,在javascript中对应为Object和Array

5、友好逐行数据输出并回调:java中可以将List逐行输出到浏览器中,
框架每接收到一条数据,能够自动回调给定的javascript方法,
从而实现数据流的逐行输出;
该接口继承与“com.ibatis.sqlmap.client.event.RowHandler”
因此很容易将ibatis的数据流逐行输出给浏览器,从而实现非常友好的数据加载方式

6、支持回调全异步(观察者模式):所有的过程调用都采用异步方式,
可以指定回调函数,用来接收返回的对象,并进行其他处理

7、日志回调:L异步过程可以设置日志回调函数,让你掌控全过程

8、增加了表格组件:XTDataGrid 0.9版本(和slick grid相比,更具有中国特色)

相关链接

继(本开源作者的书)《JavaScript高级应用与实践》之后推出的开源代码——json-rpc-for-java light AJAX framework:

作者csdn博客 | 作者新浪600多万次点击博客 | 作者网站

json-rpc常见问题

1、为什么json-rpc总是无法正确运行?

答:请检查你的所有Filter代码,其中不能有类似request.getParameter的代码,或者你根据头信息判断后再获取,例如来自json-rpc的请求,会有附加的头信息:CMHS 因为,本json-rpc会有request.getInputStream这样的代码,在这一的代码之前不能调用request.getParameter

支持的浏览器

IE6、IE7、IE8、FireFox(×)、Opera(×)、Safari(×)、Google Chrome(×)等等

目前应用验证环境:tomcat系列、jboss系列、weblogic系列等均有实际项目应用

hp unix、linux、windowsXP, win 2008,win7

最新功能

1、异步调用支持传入复合对象作为异步方法的参数,例如: rpc.XRpc.myFunc({aac002:345,kad:’good’}); Java中可以为Map或者JavaBean对象

2、增加防止对象成员变量引用自身导致的死循环递归堆栈溢出

3、增加直接访问父类属性、方法的功能

4、支持级联调用:返回java对象,继续调用该对象的方法

5、只要继承于jcore.jsonrpc.common.JsonRpcObject的json-rpc服务类,可以直接调用getAllInputParms()获得界面中所有输入对象的值

6、只要包名为jcore.jsonrpc.rpcobj可以不用注册【免注册】就可以直接调用,见后面示例

工程svn下载地址

http://json-rpc-for-java.googlecode.com/svn/trunk/

示例工程下载地址

测试环境:MyEclipse、Jre1.4、tomcat 5.0 如果你要测试,可以采用相应的环境,不一定要那么高版本的环境

svn:Example

rar:3.2example

最新当前版本下载地址

JSON-RPC.jar(65.1 KB) | JsonRpcClient.js(6.34 KB) |

支持包:commons-logging.jar(51.6 KB) | 支持包:commons-logging-api.jar(21.8 KB) |

JsonRpcClient_min.js(3.66 KB) | for Java使用说明.doc JSON-RPC for Java使用说明.doc | for Java使用说明.pdf JSON-RPC for Java使用说明.pdf

概述

json-rpc-for-java,是仅仅不到100行的javascript代码和不到10个java文件实现的超级轻量级的通过 javaScript快速调用java对象并返回任意对象的轻量级框架,并且支持级联调用,也就是说不需要额外 的JavaScript编程,就可以通过javascript调用被注册的java对象并返回java对象,如果被返回的对象 还有方法,这个在javascript中返回的java对象的变量,你还可以继续调用它的方法…..这就是这个轻 量级json-rpc-for-java的神奇之处。 当返回的是java对象List的时候,在javascript中体现为ArrayList,如果是Map,着体现为js中的 Object,其他的和java中的调用基本相同。 特殊的地方是,通过JS调用java对象方法的时候只能传入简单类型的参数,比 如:String,int,float,long等。

注意事项

如果你的java服务对象返回的是Object、Bean、Map或者自定义对象,不能有属性name_、id_,这两个属性被本框架内部使用

json rpc for java的使用

请从http://code.google.com/p/json-rpc-for-java/downloads/list 下载

调用未注册和配置的类方法

1、 首先,被调用的类需要继承jcore.jsonrpc.common.JsonRpcObject或实现接口jcore.jsonrpc.common.face.IjsonRpcObject,并有默认的构造函数; 例如:


package test.rpc;
import jcore.jsonrpc.common.JsonRpcObject;
public class MyTestRpc extends JsonRpcObject {
        /**
         * 调用:rpc.getRpcObj('test.rpc.MyTestRpc').getTestMsg()
         * @return
         */
        public String getTestMsg()
        {
                return "噢,成功了!";
        }
}


2、 JSP的JavaScript中调用的方式,例如:alert(rpc.getRpcObj(‘test.rpc.MyTestRpc’).getTestMsg());

或者 1、 首先,被调用的类需要继承jcore.jsonrpc.common.JsonRpcObject或实现接口jcore.jsonrpc.common.face.IjsonRpcObject,并有默认的构造函数; 例如:

package test.rpc;
import jcore.jsonrpc.common.JsonRpcObject;
public class MyTestRpc extends JsonRpcObject {
        /**
         * 调用:rpc.getRpcObj('test.rpc.MyTestRpc').getTestMsg()
         * @return
         */
        public String getTestMsg()
        {
                return "噢,成功了!";
        }
}

2、 JSP的JavaScript中调用的方式,例如:alert(rpc.MyTestRpc.getTestMsg());


Related Links

Following the “JavaScript and Practice of advanced applications,” after the introduction of open-source code – json-rpc-for-java light AJAX framework:

Csdn blog authors | Author Sina more than 600 million hits blog | author site

Browser support

IE6, IE7, IE8, FireFox ?(×), Opera (×), Safari (×), Google Chrome (×), etc.

Asynchronous call to support the introduction of asynchronous composite object as a method parameter

Download svn project

http://json-rpc-for-java.googlecode.com/svn/trunk/

Download sample project

Test environment: MyEclipse?, Jre1.4, tomcat 5.0 If you want to test the environment can be used, need not be so high version of the environment 2.8.1example

Download the latest version of the current

JSON-RPC.jar | JsonRpcClient.js

Overview

json-rpc-for-java, is only less than 100 lines of javascript code and less than 10 java files to achieve the adoption of the super-lightweight java objects javaScript quick call and return to the lightweight arbitrary object framework, and support level joint call, which means no additional JavaScript? programming, they can be registered through the javascript to call the java object and return java object, the object is returned if there are ways to return to this in the javascript in the java object variables, You can also continue to call it ….. This is the way to the lightweight json-rpc-for-java’s magic. When they returned to the List when the java object, embodied in the javascript for the ArrayList?, If it is Map, reflected in the js in the Object, and other java call in basically the same. Special place is that by JS call java object can only be imported when the parameters of simple types, such as: String, int, float, long, etc..

Notes

If you return to the java client is the Object, Bean, Map or custom objects, can not have attributes name, id, these two attributes for internal use by the framework

json rpc for java use

Please download http://code.google.com/p/json-rpc-for-java/downloads/list

Call not the registration and configuration of the class method

1, first of all, is called the class needs to inherit jcore.jsonrpc.common.JsonRpcObject? Or the realization of interface jcore.jsonrpc.common.face.IjsonRpcObject?, And the default constructor; such as:

package test.rpc; import jcore.jsonrpc.common.JsonRpcObject;
public class MyTestRpc extends JsonRpcObject (

/
Call: rpc.getRpcObj ( 'test.rpc.MyTestRpc'). GetTestMsg ()
@ Return
/
public String getTestMsg () (
return "Oh, a success!";
)
)

2, JSP’s JavaScript? Way call, for example: alert (rpc.getRpcObj ( ‘test.rpc.MyTestRpc?’). GetTestMsg ());

来自:http://code.google.com/p/json-rpc-for-java/#强荐友人新RPC框架

jsvm是什么?jsvm介绍

JSVM (JavaScript Virtual Machine 的缩写) 是一个面向 JavaScript 开发领域的基础框架。该软件是自由软件,2003年底由万常华(wch3116)发起, 目前是2.0版,采用的是 BSD License 授权协议。

JavaScript的开发长期以来停留在基于function,面向过程的开发模式。这种模 式的缺点是无组织无纪律,代码不宜复用。近些年出现了不少JS框架,但多数专注于某些应用领域,比如 bindows 侧重 UI 层, 而一些 Ajax 框架则主要关注于通讯层。这些框架的目的是提供一套工具库给开发人员使用,而如果想进一步扩展其功能进行二次开发则比较困难。发展发展规模都受到了一些限 制。

JSVM 出现将改变这种状况,它不是针对特定某个应用领域,而是在代码组织结构和开发规范上作了很多努力。开发人员只要遵循jsvm的规范进行 JavaScript开发,产出物不用作任何改动就能直接被其他人使用,不用担心文件名的冲突,变量函数名的冲突,他们之间的依赖关系是怎样的。劳动成果 共享(代码重用)就变得非常简单。对于多人团队开发这一点格外重要。这既是jsvm的根本目的和核心价值。

jsvm2其实就是定义了js开发规范,把传统function集合js文件的开发方式,改成 了面向对象-类的开发模式。我们写好一组有某些功能的类,其他人拷过去,部署到合适位置,就能直接通过 import 方式加载后直接使用而不用担心定义冲突,以及文件之间的依赖关系。

JSVM 的规范很简单:就是基于类(Function)的开发。所有的模块都以类的方式进行定义。类名采用类java的命名规范 (包名.)+(类名) 例如:com.homolo.example.HelloWorld, 每一个独立的类必须存成单个文件(扩展名.jsc),路径采用:(包名)+(类名.jsc) 例如:jsvm2classescomhomoloexampleHelloWorld.jsc。注意: 定层“包”必须直接定义在window对象下,例如:com.homolo.example.HelloWorld 类中的 com 包,必须定义成 window.com = new Package(); 这样我们在任何地方根据包名+类名的方式就可以访问到这个类。当然开发人员写代码的时候不用这么麻烦,只需通过API函数 _$pakcage(“com.homolo.example”); 就可以了。

来自:http://www.10bu.com/tech/program/20110228/107149.html

ASP.NET多种调用javascript脚本的方法

ASP.NET本身就提供了多种调用javascript脚本的方法,笔者在这里总结了六种调用方法,大家可以根据自己的使用习惯选择相应的调用方式了!

1、直接在前台页面调用自定义的javascript 函数:

很简单,在 head 元素之间加入 script 元素,将 type 元素设置为 ” text/javascript ”

如:

<head runat=”server”>
<script type=”text/javascript” >
function ShowName(str)
{
alert(“十万个为什么的站长是:(“+str+”)”);
}
</script>
<title>using javascript</title>
</head>

之后在body 元素间,通过事件来访问,比如要通过button1 的单击事件(onclientclick)来访问 javascript 函数的ShwoName()的示例如下:

<asp:Button ID=”Button1″ runat=”server” Text=”Button” onclientclick=”ShowName(‘伍锐锋’)” />

这时运行项目,单击 button时,会显示”十万个为什么,的站长是:伍锐锋”
这就是在前端页面直接定义及调用javascript函数.

2、在前台通过引入js文件来调用相应的函数:

方法与(1)一样,只不过需要指定要调用的js 文件

示例如下:

<head runat=”server”>
<script type=”text/javascript” src=”kenscript.js”>
</script>
<title>using javascript</title>
</head>

之后在body 元素间,通过事件来访问, 比如要通过button1 的单击事件(onclientclick)来访问 javascript 函数的示例如下:

//此时 .js文件中必须有 ShowName 方法

<asp:Button ID=”Button1″ runat=”server” Text=”Button” onclientclick=”ShowName(‘伍锐锋’)” />

3、在后台调用 javascript 函数,函数在.js文件中

前台的head 元素

<head runat=”server”>
<script type=”text/javascript” src=”kenscript.js”>
</script>
<title>using javascript</title>
</head>

后台的需要添加如下代码

Button1.Attributes.Add(“onclick”, “showname1(‘伍锐锋’)”);

4、在后台调用 javascript 函数,函数写在对应的js文件中,但并没有在前台定义,示例如下:

//获得.js文件

string myscript = “kenscript.js”;

//注册.js文件

Page.ClientScript.RegisterClientScriptInclude(“myKey”, myscript);

如果此时查看源码,会得到如下代码

//<script src =”kenscript.js” type=”text/javascript”><script>

//同上
Button1.Attributes.Add(“onclick”, “showname1(‘伍锐锋’)”);

5. 用Response.Write方法写入脚本

比如在你单击按钮后,先操作数据库,完了后显示已经完成,可以在最后想调用的地方写上
Response.Write(“<script type=’text/javascript’>alert(“操作完成!”);</script>”);

不过呢,这个方法有个缺陷就是不能调用脚本文件中的自定义的函数,只能调用内部函数,具体调用自定义的函数只能在Response.Write写上 函数定义,比如Response.Write(“<script type=’text/javascript’>function myfun(){…}</script>”);

6.用ClientScript类动态添加脚本

用法如下:在想调用某个javascript脚本函数的地方添加代码,注意要保证MyFun已经在脚本文件中定义过了。

ClientScript.RegisterStartupScript(ClientScript.GetType(), “myscript”, “<script>MyFun();</script>”);

这个方法比Response.Write更方便一些,可以直接调用脚本文件中的自定义函数,不过跟前面几种相比没那么简洁直观。

注意,以上所有方法中,后台代码都不能有转化当前页的代码,比如Redirect等,要把转页代码放在脚本里面.

http://blog.sina.com.cn/s/blog_67e0571d0100m8vn.html