一 :客户端 js 的数组 来 映射 服务器端的 Map 对象 :
首先我们服务器端 有一个java方法 :
/** */
/**
* 输入一个map ,原封不动的输出来
* @param arg
* @return Map
*/
public Map object(Map arg) {
return arg;
}
* 输入一个map ,原封不动的输出来
* @param arg
* @return Map
*/
public Map object(Map arg) {
return arg;
}
在客户端我们有 这样的 js 代码 :
<
script language
=
"
javascript
"
>
var buffalo = new Buffalo(endPoint)
function sendObject() {
var a = {} ;
a[Buffalo.BOCLASS] = " java.util.Map " ;
a[ " a " ] = " A " ;
a[ " b " ] = true ;
a[ " c " ] = 123.4 ;
var u = {} ;
u[Buffalo.BOCLASS] = " net.buffalo.demo.simple.User " ;
u.id = 234 ;
u.name = " <xml here>& " ;
u.age = 17 ;
u.sex = false ;
u.memo = " very beautiful " ;
a[ " u " ] = u;
buffalo.remoteCall( " simpleService.object " ,[a], function(reply) {
alert( " return user memo: " + reply.getResult()[ " u " ].memo);
} );
}
</ script >
var buffalo = new Buffalo(endPoint)
function sendObject() {
var a = {} ;
a[Buffalo.BOCLASS] = " java.util.Map " ;
a[ " a " ] = " A " ;
a[ " b " ] = true ;
a[ " c " ] = 123.4 ;
var u = {} ;
u[Buffalo.BOCLASS] = " net.buffalo.demo.simple.User " ;
u.id = 234 ;
u.name = " <xml here>& " ;
u.age = 17 ;
u.sex = false ;
u.memo = " very beautiful " ;
a[ " u " ] = u;
buffalo.remoteCall( " simpleService.object " ,[a], function(reply) {
alert( " return user memo: " + reply.getResult()[ " u " ].memo);
} );
}
</ script >
注意 这 2 句 :
a[Buffalo.BOCLASS]
=
"
java.util.Map
"
;
u[Buffalo.BOCLASS]
=
"
net.buffalo.demo.simple.User
"
;
二 : 将表单序列化为一个dto对象
首先我们在服务器端有一个 dto对象 :
public
class
User
{
private int id;
private String name;
private int age;
private boolean sex;
private String memo;
public User() {
}
}
private int id;
private String name;
private int age;
private boolean sex;
private String memo;
public User() {
}
}
接下来我们在客户端有下列代码 :
<
script language
=
"
javascript
"
>
var buffalo = new Buffalo(endPoint);
function doAnotherSubmit() {
var userObj = Buffalo.Form.formToBean("form1", "net.buffalo.demo.form.User");
buffalo.remoteCall("userService.createUser", [userObj], function(reply){
$("form_infomsg").innerHTML="Form has been submited, username is: " + reply.getResult().username;
})
}
</ script >
var buffalo = new Buffalo(endPoint);
function doAnotherSubmit() {
var userObj = Buffalo.Form.formToBean("form1", "net.buffalo.demo.form.User");
buffalo.remoteCall("userService.createUser", [userObj], function(reply){
$("form_infomsg").innerHTML="Form has been submited, username is: " + reply.getResult().username;
})
}
</ script >
注意这2句 :
var userObj
=
Buffalo.Form.formToBean(
"
form1
"
,
"
net.buffalo.demo.form.User
"
);
form1表单中 有 User类 中属性 同名 的 表单项 , 这样 userObj 就可以作为在客户端 映射 User 的参数了。
另外 :
$(
"
form_infomsg
"
)
可以指页面中 :
<
div id
=
"
form_infomsg
"
style
=
"
color:blue
"
></
div
>
表示的位置。
三 :数据绑定
首先 我们在服务器端有 这样一个变量 :
public
static
List employees()
{
if (employees.size() > 0) return employees;
employees.add(new EmployeeBean("1", "Greg", "Murray"));
employees.add(new EmployeeBean("2", "Greg", "Murphy"));
employees.add(new EmployeeBean("3", "George", "Murphy"));
employees.add(new EmployeeBean("4", "George", "Murray"));
employees.add(new EmployeeBean("5", "Peter", "Jones"));
employees.add(new EmployeeBean("6", "Amber", "Jones"));
employees.add(new EmployeeBean("7", "Amy", "Jones"));
employees.add(new EmployeeBean("8", "Bee", "Jones"));
employees.add(new EmployeeBean("9", "Beth", "Johnson"));
employees.add(new EmployeeBean("10", "Cindy", "Johnson"));
employees.add(new EmployeeBean("11", "Cindy", "Murphy"));
employees.add(new EmployeeBean("12", "Duke", "Hazerd"));
return employees;
}
if (employees.size() > 0) return employees;
employees.add(new EmployeeBean("1", "Greg", "Murray"));
employees.add(new EmployeeBean("2", "Greg", "Murphy"));
employees.add(new EmployeeBean("3", "George", "Murphy"));
employees.add(new EmployeeBean("4", "George", "Murray"));
employees.add(new EmployeeBean("5", "Peter", "Jones"));
employees.add(new EmployeeBean("6", "Amber", "Jones"));
employees.add(new EmployeeBean("7", "Amy", "Jones"));
employees.add(new EmployeeBean("8", "Bee", "Jones"));
employees.add(new EmployeeBean("9", "Beth", "Johnson"));
employees.add(new EmployeeBean("10", "Cindy", "Johnson"));
employees.add(new EmployeeBean("11", "Cindy", "Murphy"));
employees.add(new EmployeeBean("12", "Duke", "Hazerd"));
return employees;
}
在客户端我们有 这样的代码 :
var buffalo
=
new
Buffalo(endPoint);
function doCompletion() {
buffalo.bindReply("ajaxService.filterEmployees",[target.value], "names");
}
function doCompletion() {
buffalo.bindReply("ajaxService.filterEmployees",[target.value], "names");
}
同时我们在页面中有 :
<
TABLE id
=
"
names
"
border
=
"
1
"
jheight
=
"
0
"
>
结果 :
还有一种形式是 :
buffalo.remoteCall(
"
simpleService.allLocales
"
, [], function(reply)
{
/** *//**Buffalo.bind("area", reply.getSource());*/
Buffalo.bind(tableId, reply.getResult());
} )
/** *//**Buffalo.bind("area", reply.getSource());*/
Buffalo.bind(tableId, reply.getResult());
} )
注意这句
Buffalo.bind(tableId, reply.getResult());