今天由梁言兵老師為大家講解ajax,他首先介紹了什麼是web 2.0及web 2.0的應用。
ajax架構:
用戶端架構:DOJO,bindows,Rico
伺服器端架構:DWR,JSON,buffalo
基礎庫:prototype.js
這次講解的是buffalo架構。buffalo要通過一個註冊檔案註冊Bean對象,buffalo設定檔中的配置項是“對象執行個體名=完全限定類名”。
用戶端代碼:
var END_POINT="<%=request.getContextPath()%>/bfapp";
var buffalo = new Buffalo(END_POINT);
buffalo.remoteCall("userService.login",["username","password"], function(reply) {
var success = reply.getResult();
if (success) {
alert("You login successfully");
} else {
alert("user name or password incorrect!");
}
});
buffalo背景JavaBean是否是共用的,用計數器測試一下,發現每個請求建立一個Bean執行個體對象。
用戶端發送給伺服器端的請求格式怎樣,我安排馮偉立用sniffer監聽軟體聽了一下,效果。
以前學了java web中的過濾器程式後,可以用filter來測試buffalo的請求和響應資訊。
如果故意給buffalo的END_POINT的值改錯,可以看到請求URL找不到,從這個錯誤中可以看到buffalo的請求URL。
這是Tomcat報的錯,buffalo提供了自己的錯誤顯示視窗。
引入buffalo的.js檔案時,要注意引入的順序,因為Javascript按順序解釋。
MyEclipse web2.0 browser可以調試javascript和看http協議資訊。
習慣:專門建立一個resource目錄管理自己的資源檔。
common目錄放公用頁面,如錯誤處理頁面
image放置圖片。
admin放置管理程式。
scripts專門放置js指令碼
項目中也可以用script目錄存放sql指令碼
styles專門放置css檔案。
用wst外掛程式開發java web應用,web分發目錄在project-->.metadata-->.plugin-->..server.core...-->tmp目錄中,這個外掛程式經常出問題,將lib下的某些jar包拷貝不到分發目錄中,jsp檔案更新不到分發目錄中。
在baidu裡面搜尋"event.observe"
prototype.js中實現的$是document.getElementById
講了AjaxTable的需求和設計思路
buffalo的formToBean方法產生的Javascript對象要包含伺服器端對應的FormBean對象。buffalo接收到用戶端的對象參數後,自動調用註冊的伺服器端的bean方法,並產生伺服器端的對象作為參數傳遞給bean方法。如果formBean產生的JavaScript對象中只包含了BO的部分屬性,那麼可以接著為這個JavaScript對象動態增加其他屬性,例如,AjaxTable中的Form表單中不包含當前顯示的頁號,可以動態將其加入。