`
log_cd
  • 浏览: 1098607 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Buffalo.BOCLASS与Buffalo.Form.formToBean,session

阅读更多
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.jar & buffalo.js

    由于文件名中的“buffalo”,我们可以推测这个JavaScript组件可能与`buffalo.jar` 有关联,可能是为Java应用提供前端交互支持,或者两者共同构建了一个跨平台的解决方案。 标签“buffalo”可能是指一个项目、框架...

    buffalo.rar

    在本文中,我们将深入探讨`buffalo`框架的核心概念、功能特性以及它如何与`Ajax`相比较,同时还会简要介绍如何使用`buffalo`进行实际的开发工作。 首先,让我们理解一下`Ajax`(Asynchronous JavaScript and XML)。`...

    buffalo_l.zip

    《深入理解InsightFace:基于PyTorch与ONNX的实现》 InsightFace,一个在人脸识别领域备受瞩目的开源项目,是深度学习技术在人脸识别上的一次卓越实践。其核心在于提供了一套高效、准确的人脸识别算法,广泛应用于...

    buffalo-l.zip

    《深入理解InsightFace与 buffalo-l.zip 包中的ONNX模型》 在人工智能领域,模型的转换和共享是一项重要的任务,ONNX(Open Neural Network Exchange)作为一种开放的模型格式,旨在促进不同框架间的模型互操作性。...

    存储buffalo.rar

    "存储buffalo.rar"这个压缩包文件显然包含了一些专为Buffalo品牌的存储设备设计的工具或软件,帮助用户查找和管理这些设备的IP地址。让我们深入探讨一下与这个主题相关的一些关键知识点。 1. **Buffalo品牌**: ...

    深度算法 Insight 使用 buffalo-l.zip

    深度算法 Insight 使用 buffalo_l.zip

    buffalo.jar

    buffalo2.0.jar,ajax使用buffalo框架!

    开源项目-gobuffalo-buffalo.zip

    开源项目-gobuffalo-buffalo.zip,How to migrate a complex app, such as Buffalo, from dep (or nothing) to vgo

    基于Java的实例源码-国产Ajax框架 Buffalo.zip

    【描述】"基于Java的实例源码-国产Ajax框架 Buffalo.zip" 描述了一个专注于Java平台的Ajax解决方案,它可能是为了解决JavaScript与服务器端通信的效率和复杂性问题而设计的。开发者可以通过这个框架,更方便地在后台...

    buffalo-l 包buffalo-sc包

    总的来说,`buffalo-l`和`buffalo-sc`是与`Buffalo`框架相关的特殊包,可能分别代表轻量级版本和服务器端组件,对于Go语言的Web开发者来说,理解并掌握这些包的使用能提高开发效率和应用安全性。通过学习和实践,...

    基于java的国产Ajax框架 Buffalo.zip

    5. 错误处理与调试:Buffalo提供了完善的错误处理机制,当Ajax请求出现异常时,框架会自动捕获并返回错误信息,帮助开发者快速定位问题。同时,其调试工具也相当友好,便于开发者在开发过程中进行实时调试。 6. ...

    国产Ajax框架 Buffalo.7z

    与国外的一些知名框架相比,Buffalo更注重适应中国开发者的需求,具有较高的本土化特性。 二、核心组件 1. **buffalo-core**:这是框架的基础模块,包含了Ajax请求处理、数据序列化、事件处理等核心功能。它提供了...

    基于Java的国产Ajax框架 Buffalo.zip

    **基于Java的国产Ajax框架 Buffalo** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个...无论你是初学者还是经验丰富的开发者,都可以考虑将Buffalo纳入你的开发工具箱,体验它所带来的便捷与高效。

    java源码:国产Ajax框架 Buffalo.rar

    《Java源码解析:国产Ajax框架Buffalo》 在当今Web开发领域,Ajax技术因其能够实现页面局部刷新、提升用户体验而备受青睐。本篇将深入探讨一个国产Ajax框架——Buffalo,通过分析其源码,我们可以了解到该框架的...

    基于java的开发源码-国产Ajax框架 Buffalo.zip

    - **异步通信**:Buffalo使用Java Servlet API处理Ajax请求,提供了一种简单的接口来实现后台与前端的数据交换。 - **组件化**:框架包含了一系列可重用的UI组件,如表格、表单、对话框等,这些组件可以方便地嵌入...

    XBOX360硬盘管理(Party Buffalo)+源代码

    4. 系统兼容性模块:确保 Party Buffalo 能够与不同的Xbox360固件版本兼容,避免因系统升级导致的软件失效问题。 此外,源代码还可能包含了一些优化技巧,例如缓存机制、多线程处理等,这些都是为了提高软件运行...

    Go语言的Web开发框架Go-Buffalo.zip

    安装$ go get -u github.com/gobuffalo/buffalo/buffalo生成新项目Buffalo 旨在使 Web 应用程序的构建更简单:$ buffalo new 要查看新命令的可用标示列表,请查看帮助:$ buffalo help new 标签:...

    buffalo tftpboot.zip

    【标题】:“buffalo tftpboot.zip”是一个用于恢复 Buffalo TS-XL 系列NAS设备固件的TFTP启动文件集合。 【描述】:当你的Buffalo TS-XL系列网络存储器(NAS)遇到问题,比如系统崩溃或者“变砖”,无法正常启动时...

Global site tag (gtag.js) - Google Analytics