1.客户端 js 的数组来映射服务器端的 Map 对象
(1).service
public Map object(Map arg) {
return arg;
}
(2).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 >
2.将表单序列化为一个dto(Data Transfer Object)对象
(1).dto对象
public class User {
private int id;
private String name;
private int age;
private boolean sex;
private String memo;
public User() {
}
}
(2).js
<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>
3.buffalo中使用session
(1).Buffalo为那些需要使用session, request,servletContext对象的服务提供了BuffaloService类,任何服务只需要继承这个类就可以获得容器对象,如request,session, context等。
例:
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import net.buffalo.server.BuffaloService;
class LoginService extends BuffaloService{
public boolean login(String username, String password) {
HttpServletRequest request = (HttpServletRequest)getRequest();
HttpSession session = request.getSession();
if (username == "foo" && password="bar") {
session.setAttribute("username", username);
return true;
}
else
{return false;}
}
}
(2). 从Buffalo2.0开始,你方便地可以get/set session/cookie/context的值。通过使用RequestContext类,你能以更加轻松的方式全权控制它们的生命周期值。
// Get a thread-safe request context
context = net.buffalo.request.RequestContext.getContext();
// Get session value
Map session = context.getSession();
String username = (String)session.get("username");
// Update the session value, will refresh the session immediately
session.put("username", "newUsername");
// cookie
Map cookieMap = context.getCookie();
Cookie cookie = cookieMap.get("cookieName");
// update cookie
Cookie c = new Cookie("name", "value");
cookieMap.put(c.getName(), c);
// ServletContext
Map application = context.getApplication();
Object value = application.get("key");
...
注:
1.2.4之前需要继承一个BuffaloService,从1.2.4开始就不需要继承了,引入了线程安全的BuffaloContext对象,只需要通过BuffaloContext.getContext()即可获得一个线程安全的引用,并且对Request的各种属性进行操作。
Map BuffaloContext.getContext().getSession()
Map BuffaloContext.getContext().getApplication()
Map BuffaloContext.getContext().getCookie()
分享到:
相关推荐
由于文件名中的“buffalo”,我们可以推测这个JavaScript组件可能与`buffalo.jar` 有关联,可能是为Java应用提供前端交互支持,或者两者共同构建了一个跨平台的解决方案。 标签“buffalo”可能是指一个项目、框架...
在本文中,我们将深入探讨`buffalo`框架的核心概念、功能特性以及它如何与`Ajax`相比较,同时还会简要介绍如何使用`buffalo`进行实际的开发工作。 首先,让我们理解一下`Ajax`(Asynchronous JavaScript and XML)。`...
《深入理解InsightFace:基于PyTorch与ONNX的实现》 InsightFace,一个在人脸识别领域备受瞩目的开源项目,是深度学习技术在人脸识别上的一次卓越实践。其核心在于提供了一套高效、准确的人脸识别算法,广泛应用于...
《深入理解InsightFace与 buffalo-l.zip 包中的ONNX模型》 在人工智能领域,模型的转换和共享是一项重要的任务,ONNX(Open Neural Network Exchange)作为一种开放的模型格式,旨在促进不同框架间的模型互操作性。...
"存储buffalo.rar"这个压缩包文件显然包含了一些专为Buffalo品牌的存储设备设计的工具或软件,帮助用户查找和管理这些设备的IP地址。让我们深入探讨一下与这个主题相关的一些关键知识点。 1. **Buffalo品牌**: ...
深度算法 Insight 使用 buffalo_l.zip
buffalo2.0.jar,ajax使用buffalo框架!
开源项目-gobuffalo-buffalo.zip,How to migrate a complex app, such as Buffalo, from dep (or nothing) to vgo
【描述】"基于Java的实例源码-国产Ajax框架 Buffalo.zip" 描述了一个专注于Java平台的Ajax解决方案,它可能是为了解决JavaScript与服务器端通信的效率和复杂性问题而设计的。开发者可以通过这个框架,更方便地在后台...
总的来说,`buffalo-l`和`buffalo-sc`是与`Buffalo`框架相关的特殊包,可能分别代表轻量级版本和服务器端组件,对于Go语言的Web开发者来说,理解并掌握这些包的使用能提高开发效率和应用安全性。通过学习和实践,...
5. 错误处理与调试:Buffalo提供了完善的错误处理机制,当Ajax请求出现异常时,框架会自动捕获并返回错误信息,帮助开发者快速定位问题。同时,其调试工具也相当友好,便于开发者在开发过程中进行实时调试。 6. ...
与国外的一些知名框架相比,Buffalo更注重适应中国开发者的需求,具有较高的本土化特性。 二、核心组件 1. **buffalo-core**:这是框架的基础模块,包含了Ajax请求处理、数据序列化、事件处理等核心功能。它提供了...
**基于Java的国产Ajax框架 Buffalo** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个...无论你是初学者还是经验丰富的开发者,都可以考虑将Buffalo纳入你的开发工具箱,体验它所带来的便捷与高效。
《Java源码解析:国产Ajax框架Buffalo》 在当今Web开发领域,Ajax技术因其能够实现页面局部刷新、提升用户体验而备受青睐。本篇将深入探讨一个国产Ajax框架——Buffalo,通过分析其源码,我们可以了解到该框架的...
- **异步通信**:Buffalo使用Java Servlet API处理Ajax请求,提供了一种简单的接口来实现后台与前端的数据交换。 - **组件化**:框架包含了一系列可重用的UI组件,如表格、表单、对话框等,这些组件可以方便地嵌入...
4. 系统兼容性模块:确保 Party Buffalo 能够与不同的Xbox360固件版本兼容,避免因系统升级导致的软件失效问题。 此外,源代码还可能包含了一些优化技巧,例如缓存机制、多线程处理等,这些都是为了提高软件运行...
安装$ go get -u github.com/gobuffalo/buffalo/buffalo生成新项目Buffalo 旨在使 Web 应用程序的构建更简单:$ buffalo new 要查看新命令的可用标示列表,请查看帮助:$ buffalo help new 标签:...
【标题】:“buffalo tftpboot.zip”是一个用于恢复 Buffalo TS-XL 系列NAS设备固件的TFTP启动文件集合。 【描述】:当你的Buffalo TS-XL系列网络存储器(NAS)遇到问题,比如系统崩溃或者“变砖”,无法正常启动时...