log_cd 发表于 2013-1-27 04:44:43

Buffalo.BOCLASS与Buffalo.Form.formToBean,session

1.客户端 js 的数组来映射服务器端的 Map 对象
(1).service
publicMap object(Map arg)   {               returnarg;    }
(2).js
< script language = " javascript " > var buffalo=   newBuffalo(endPoint)function sendObject()   {    var a=    {} ;    a=   " java.util.Map " ;    a[ " a " ]=   " A " ;    a[ " b " ]=   true ;    a[ " c " ]=   123.4 ;    var u=    {} ;    u=   " 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 " ,, 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", , 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 contextcontext = net.buffalo.request.RequestContext.getContext();// Get session valueMap session = context.getSession();String username = (String)session.get("username");// Update the session value, will refresh the session immediatelysession.put("username", "newUsername");// cookieMap cookieMap = context.getCookie();Cookie cookie = cookieMap.get("cookieName");// update cookieCookie c = new Cookie("name", "value");cookieMap.put(c.getName(), c);// ServletContextMap 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()
页: [1]
查看完整版本: Buffalo.BOCLASS与Buffalo.Form.formToBean,session