2010年11月27日 星期六

GoogleMap API V3

漸漸熟悉了, 上面可以有不少應用...overlay 跟一些比較深的部份還沒接觸到,
後續有機會再來寫寫心得.

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

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");
                          }
                        });

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


    <selectKey resultClass="java.lang.Long" keyProperty="scopeId" >
      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