Buffalo.BOCLASS与Buffalo.Form.formToBean,session

[b]1.客户端 js 的数组来映射服务器端的 Map 对象 [/b]
(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 = " & " ;
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);
} );
}


[b]2.将表单序列化为一个dto(Data Transfer Object)对象[/b]

(1).dto对象

public class User {
private int id;
private String name;
private int age;
private boolean sex;
private String memo;

public User() {
}
}


(2).js




[b]3.buffalo中使用session[/b]

(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()

你可能感兴趣的:(JavaScript框架)