开发环境:JDK1.5 + Tomcat6.0.24
一 发送对象与接收对象(简单转换示例)
1 后台类(实体类,服务类)
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private String id = null;
private String firstName = null;;
private String middleName = null;;
private String familyName = null;;
private String age = null;
private String sex = null;
private List interests = null;
//相应的get,set方法,空的构造函数
//重写toString()方法,将会在控制台得到详细的类信息
public String toString(){
return org.apache.commons.lang.builder.
ToStringBuilder.reflectionToString(this);
}
}
您可能要问为什么age这个属性要设置为String呢!待会揭晓!
public class UserService{
public User addUser(User user){
System.out.println("用户信息: "+user);
return user;
}
}
buffalo-service.properties属性文件如下设置:
userService=net.buffalo.service.UserService
2 界面元素
你一定会想到界面各相关元素名字和类的属性名字一样吧!
<div>
<br><form action="" name="form1">
姓氏: <input type="Text" name="firstName" id="firstName" ><br>
名字: <input type="Text" name="middleName" id="middleName" ><br>
姓名: <input type="Text" name="familyName" id="familyName" ><br>
年龄: <input type="Text" name="age" id="age" ><br>
性别: <input type="radio" name="sex" value="1" checked>男性
<input type="radio" name="sex" value="0">女性 <br>
爱好:
<input type="checkbox" name="interests" value="阅读" checked>阅读nbsp; <input type="checkbox" name="interests" value="运动">运动
<input type="checkbox" name="interests" value="写作">写作
<input type="checkbox" name="interests" value="游戏">游戏
<input type="checkbox" name="interests" value="漫画">漫画
<input type="checkbox" name="interests" value="音乐">音乐
</form>
</div>
3 JS引用
<script language="JavaScript" src="script/prototype.js"></script>
<scriptlanguage="JavaScript" src="script/buffalo.js"></script>
4 JS函数
<script language="JavaScript">
var endPoint="<%=request.getContextPath()%>/bfapp";
var buffalo = new Buffalo(endPoint);
funcion addUser(){
var userObj = Buffalo.Form.formToBean("form1",
"net.buffalo.vo.User");
buffalo.remoteCall("userService.addUser", [userObj], function(reply){
var user = reply.getResult();
var userInfo = "姓: "+user.firstName;
userInfo += "\n名字: "+user.middleName;
userInfo += "\n全名称: "+user.familyName;
userInfo += "\n年龄: "+user.age;
userInfo += "\n性别 : "+user.sex;
userInfo += "\n年龄: "+user.age;
userInfo += "\n 爱好: "+user.interests;
$("form_infomsg").innerHTML=userInfo;
});
}
//第二种用法:
var domainObject = "yourdomain.app.Domain";
var object=Buffalo.Form.formToBean("form2", domainObject, true);
var object = Buffalo.Form.formToBean("form1", null, false);
assertEqual('JoshSmith', object.username);
assertEqual('1', object.gendor);
assertEqual('A', object.interest[0]);
assertEqual('C', object.interest[1]);
assertEqual('2', object.option[0]);
assertEqual('3', object.option[1]);
assertEqual('submit', object.submit);
var object = Buffalo.Form.formToBean("form1", null, true);
assertEqual(null, object.submit);
//绑定html元素值
var data = {
username: "Michael",
password: "newpass",
gendor: "boy",
interest: ["B","C"],
option1: ["1","3"],
option2: "3"
}
Buffalo.Form.bindForm("form3", data);
var obj = Buffalo.Form.formToBean("form3");
assertEqual("Michael", obj.username);
assertEqual("newpass", obj.password);
assertEqual("boy", obj.gendor);
assertEqual("B,C", obj.interest);
assertEqual("1,3", obj.option1);
assertEqual("3", obj.option2);
</script>
5 注意事项
Buffalo对于form转换为Bean提供了二种方式,这是普通的应用方式,回答最开始提的问题:Buffalo只对表单中的值作字符串及字符串集合的转换.如你的Bean设置为 int age,它是不会转换的,你就等着看报异常吧.
这个Buffalo是不是提供的这个转换也太不符合实际应用了呀,放心,Buffalo还为你量身定做了第二种强大的转换方式,有了它,你就不用担心了!
二 强大的Map转换机制,选自Buffalo Demo示例.
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之 bind,reply,ajax,view,form应用(二)
http://liuzidong.iteye.com/blog/629898
分享到:
相关推荐
buffalo1.2ajax框架应用演示例子 buffalo1.2下载地址: http://www.codechina.net/resource/html/2005-12/06/119641.html
AJAX是开发基于web的rich client的一种方式,Buffalo则是实现AJAX的一个框架。Buffalo中定义了Web远程调用的传输基础,并且将远程调用对象完整的序列化到了本地,成为可以被JavaScript编程触及的对象。Buffalo中的...
Buffalo则是实现AJAX的一个框架。Buffalo中定义了Web远程调用的传输基础,并且将远程调用对象完整的序列化到了本地,成为可以被JavaScript编程触及的对象。Buffalo中的重要组件-BuffaloBinding,提供了将JavaScript...
而“国产Ajax框架 Buffalo”正是在这种背景下诞生的一款前端开发工具,它针对国内开发者的需求进行了优化,提供了丰富的功能和优秀的性能。 Buffalo框架主要由JavaScript和ECMAScript实现,这使得它在现代浏览器...
Buffalo是Go语言中的一款强大的Web开发框架,它简化了构建现代、健壮且可维护的Web应用程序的过程。本篇文章将深入探讨`buffalo`应用实例,通过一系列实践技巧,帮助开发者更好地理解和运用这个框架。 首先,理解`...
Buffalo是一个基于Java的轻量级Ajax框架,旨在简化Web应用中的异步数据交换过程。它提供了一种优雅的方式来处理前端与后端的数据交互,减少了开发者在JavaScript与服务器端之间的繁琐工作。由于其完全开源,我们可以...
Buffalo框架是中国开发者为了解决Web应用中的异步通信问题而设计的一款高效、轻量级的Ajax框架。它简化了Ajax的使用,通过提供简洁的API和良好的封装,使开发者能够快速地构建动态交互的Web页面。与国外的一些知名...
### 一、Buffalo应用配置概述 #### 1.1 Web 应用配置基础 文档提到的Buffalo应用涉及到Web应用的基本配置,包括`web.xml`文件的设置。在Web应用中,`web.xml`是一个非常重要的配置文件,它主要用来定义应用的部署...
`buffalo-l` 这个名字暗示它可能是`Buffalo`框架的一个扩展或特定语言版本,通常在编程社区中,字母`l`经常用于表示“light”或者“lite”,意味着这是一个轻量级的版本。`Buffalo`本身是一个广泛使用的开源框架,...
总结来说,Buffalo框架作为一款基于Java的Ajax解决方案,旨在简化Web应用的开发过程,提升用户体验。开发者可以充分利用其组件化、事件驱动的特点,高效构建富客户端应用。通过学习和实践,开发者将能够更好地掌握这...
Buffalo是一个用于构建Web应用程序的Go框架,它提供了方便的工具来处理HTTP请求,包括AJAX请求。要使用AJAX,你需要在前端设置JavaScript代码来发起请求,同时在后端配置相应的路由和处理函数。 1. **前端配置**:...
【标题】基于Java的国产Ajax框架 Buffalo Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新,极大...
`buffalo` 是一个JavaScript框架,它在Web开发领域中扮演着与`Ajax`类似的角色,为开发者提供了一种更为方便和实用的方式来处理异步数据交互和页面更新。在本文中,我们将深入探讨`buffalo`框架的核心概念、功能特性...
由于文件名中的“buffalo”,我们可以推测这个JavaScript组件可能与`buffalo.jar` 有关联,可能是为Java应用提供前端交互支持,或者两者共同构建了一个跨平台的解决方案。 标签“buffalo”可能是指一个项目、框架...
【标题】"基于Java的实例源码-国产Ajax框架 Buffalo.zip" 提供的是一个使用Java语言实现的国产Ajax框架——Buffalo的相关源代码。Ajax(Asynchronous JavaScript and XML)技术是一种在无需重新加载整个网页的情况下...
通过上述介绍,我们可以看出,Buffalo框架旨在为Java开发者提供一个既符合国内开发习惯又具有高性能和易用性的Ajax解决方案。它的出现,不仅丰富了Java Web开发的工具箱,也为国产技术的发展注入了新的活力。无论你...
相比之下,Ajax通过异步数据交换,能够在后台与服务器通信,仅更新需要改变的部分,实现了更加流畅的应用过程。 #### Ajax的Demo体验及原理 Ajax的核心在于使用`XMLHttpRequest`对象进行异步请求和处理数据。当...
如果这个标题与一个名为 Buffalo 的工具相关,那么我们可能正在讨论的是一个使用 Buffalo 框架的 Go 语言Web应用程序的示例。Buffalo 是一个用于构建 Web 应用的生产力框架,它简化了 Go 语言的Web开发过程。 ...
JAVA源码国产Ajax框架Buffalo
基于Ajax的buffalo技术的helloword和三级联动菜单 包含入门模块:helloword、延伸模块:三级联动菜单 项目已包含所有文件,只需导入myeclipse运行即可。 开发环境:myeclipse6.0、jdk1.5、tomcat5.0 说明:连数据库...