項目中想用ajax,於是在網上扒了n多資料,犯了n多錯誤,從今天上班到現在一直在處理這個問題,終於還是把它解決了。
當我看到頁面的ajax顯示後,我興奮異常,爲了記錄自己學習的ajax歷程,也爲了讓更多的人少走彎路,特寫此一文以記之!
廢話不說了,爲了更好的理解,我重做了一個小的項目,以加深印象。現在就以這個小項目開始我們的ajax之旅。
第一步:創建 名爲"ajax" 的 Java Web項目。
第二步:加入struts2的jar包,這裏需要四個包 freemarker.jar ognl.jar struts2-core.jar commons-fileupload.jar commons-io.jar xwork-core-2.1.6.jar(這個包加上版本號,是因爲下文要提到它),這六個包是struts必須依賴的jar包,什麼好說的。
第三步:修改 web.xml 加入 struts的過濾器,代碼如下:
第四步:加入json的包,這裏需要兩個:json-lib.jar jsonplugin.jar 這裏要注意很重要的一點,因爲json大量引用了Apache commons的包,所以這裏要一併加入,需要的commons包共4個,除了commons的包外,還需要引入一個 ezmorph的包,所以這一步一共要引入7個包,列出如下:commons-collections.jar commons-lang.jar commons-beanutils.jar commons-logging.jar ezmorph.jar 再加上json的兩個包共七個,一次性加入。
第五步:寫後臺處理AjaxLoginAction.action,內容如下:
第六步:寫前臺index.jsp,注意加入 jquery的js文件 內容如下:
第七步:在src目錄下加入struts.xml,並配置相應的xml文件,爲ajax請求提供數據。代碼如下:
第八步:如果第四步沒有加入commons-logging.jar包,這裏要記得加入
第九步:發佈運行。很不幸,你會發現一個錯誤,
java.lang.ClassNotFoundException: com.opensymphony.xwork2.util.TextUtils:
這是struts的版本錯誤,因爲用的xwork2.1.6-core.jar中不存在TextUtils類,這裏把 xwork2.1.2-core.jar也加到classpath中,xwork2.1.2-core.jar中包含這個東西,我們用的是xwork2.1.6的jar,當要用到TextUtils時,就去xwork2.1.2-core.jar中找。