漸漸熟悉了, 上面可以有不少應用...overlay 跟一些比較深的部份還沒接觸到,
後續有機會再來寫寫心得.
2010年11月27日 星期六
2010年11月11日 星期四
JQUERY + JSON + TOMCAT ServerLet 解決!
JQUERY 端 -- 記得加上 ?callback=?
$.getJSON("http://140.96.29.65:8080/SnakeEyes/SnakeEyesServlet?callback=?",{
sname: "[{session_id:1, pid:1, fid:15201, lat1:24.634535, lng1:120.918274, lat2:24.877716, lng2:120.923767, lat3:24.878962, lng3:121.216278, lat4:24.624548, lng4:121.213531}]"
},
function(data){
alert(data[0].location);
});
ServerLet 端! 很重要 要從 request中取 callback 以及 在 JSON String兩側加上小跨號 (), 會變成一個字串長成 "abc(json)" 然後 Client 收到後就會自動去 call 這個 abc() Function!
HttpServletResponse response;
HttpServletRequest request;
response.setContentType("application/x-javascript; charset=utf-8");
PrintWriter out = response.getWriter();
out.print(request.getParameter("callback") + "({\"value\":\"");
out.print("\"})");
out.flush();
out.close();
弄了兩天, 總算完工了. p.s. JQUERY 可以下 "callback=?" or "callback=abc". 前者會直接呼叫 success Function, 後者會去呼叫自訂的 abc()!
$.getJSON("http://140.96.29.65:8080/SnakeEyes/SnakeEyesServlet?callback=?",{
sname: "[{session_id:1, pid:1, fid:15201, lat1:24.634535, lng1:120.918274, lat2:24.877716, lng2:120.923767, lat3:24.878962, lng3:121.216278, lat4:24.624548, lng4:121.213531}]"
},
function(data){
alert(data[0].location);
});
ServerLet 端! 很重要 要從 request中取 callback 以及 在 JSON String兩側加上小跨號 (), 會變成一個字串長成 "abc(json)" 然後 Client 收到後就會自動去 call 這個 abc() Function!
HttpServletResponse response;
HttpServletRequest request;
response.setContentType("application/x-javascript; charset=utf-8");
PrintWriter out = response.getWriter();
out.print(request.getParameter("callback") + "({\"value\":\"");
out.print("\"})");
out.flush();
out.close();
弄了兩天, 總算完工了. p.s. JQUERY 可以下 "callback=?" or "callback=abc". 前者會直接呼叫 success Function, 後者會去呼叫自訂的 abc()!
JQUERY
getJSON 並不支援跨網段....需要另外找 jquery.jsonp-2.1.3.min.js 處理
EX.
$.jsonp({
"url": "http://140.96.29.65:8080/SnakeEyes/SnakeEyesServlet",
"data": {
sname: "[{session_id:1, pid:1, fid:15201, lat1:24.634535, lng1:120.918274, lat2:24.877716, lng2:120.923767, lat3:24.878962, lng3:121.216278, lat4:24.624548, lng4:121.213531}]"
},
"success": function(userProfile) {
// handle user profile here
alert("123");
},
"error": function(d,msg) {
alert("Could not find user");
}
});
EX.
$.jsonp({
"url": "http://140.96.29.65:8080/SnakeEyes/SnakeEyesServlet",
"data": {
sname: "[{session_id:1, pid:1, fid:15201, lat1:24.634535, lng1:120.918274, lat2:24.877716, lng2:120.923767, lat3:24.878962, lng3:121.216278, lat4:24.624548, lng4:121.213531}]"
},
"success": function(userProfile) {
// handle user profile here
alert("123");
},
"error": function(d,msg) {
alert("Could not find user");
}
});
2010年11月1日 星期一
Ibatis "Insert" return val! and PostgreSQL auto inc.
For returning insert ID.
JAVA Side
Long insertID = Long.parseLong(sqlMap.insert("scope.ibatorgenerated_insert", scopeRecord).toString())
Ibatis Side
AUTO inc.
JAVA Side
Long insertID = Long.parseLong(sqlMap.insert("scope.ibatorgenerated_insert", scopeRecord).toString())
Ibatis Side
<selectKey resultClass="java.lang.Long" keyProperty="scopeId" >
SELECT nextval('scope_scope_id_seq')
</selectKey>
SELECT nextval('scope_scope_id_seq')
</selectKey>
AUTO inc.
CREATE TABLE tablename ( colname SERIAL );
實際上是這樣實作
CREATE SEQUENCE tablename_colname_seq; CREATE TABLE tablename ( colname integer DEFAULT nextval('tablename_colname_seq') NOT NULL );
Reference:http://www.postgresql.org/docs/8.1/interactive/datatype.html
訂閱:
文章 (Atom)