springmvc ajax

   

Ajax 是Web 開發一個流行的詞彙,全稱 Asynchronous JavaScript and XML,異步的JavaScript和XML 。是幾種技術的強強聯合。
 Ajax如何工作
Ajax(即異步 JavaScript 和 XML)是一種 Web 應用程序開發的手段,它採用客戶端腳本與 Web 服務器交換數據。
 爲什麼要學習Ajax
使用Ajax的最大優點,就是能在不更新整個頁面的前提下維護數據。這使得Web應用程序更爲迅捷地迴應用戶動作,並避免了在網絡上發送那些沒有改變過的信息。


需要用到的jar包

 

 

XMLHttpRequest對象

 

直接在js裏面 實例化一個 

     

var xhr= new XMLHttpRequest();

    XMLHttpRequest對象是整個Ajax開發的基礎
提供客戶端和服務器異步通信的能力
能夠向服務器發出請求
能夠接收服務器的返回頁面


    如需將請求發送到服務器,要使用 XMLHttpRequest 對象的 open() 和 send() 方法:

open(method,url,async) 

    method 表示請求的方式(get,post)
    url  請求的路徑
    async 表示請示同步(false)還是異步(true)
   同步 只允許一個線程運行 ajax請求 一直無反應 會導致頁面卡頓 無法操作 可能會彈出 無響應窗口

 

如果 method爲 post的時候 。

url的參數不建議使用?參數的方式傳入值。

還要加上 

xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");

要在send(方法傳入的參數) 


回調 onreadystatechange 事件 

每當 readyState 改變時,就會觸發 onreadystatechange 事件。         readyState 屬性存有 XMLHttpRequest 的狀態信息。

     ajax調用後臺action會回調該方法 多次

      



Action 推送數據回頁面的三種方式 

    

       

//如果是list 那麼就使用 
  List list=new ArrayList();
		JSONArray.fromObject(list);

 //如果是object 那麼就使用
Object ob=new Object();
		JSONObject.fromObject(ob);		

     1:返回byte [] 數組 無需使用jackon Son


  例:


 2:沒有返回值。需要加上 

OutputStream os 推送過去 

 例:

@RequestMapping(value="/deleteEmp")
	public void delete(String empno,OutputStream os) throws IOException{

			empsev.deleteEmp(empno);
		
		
	}

3:返回list(對象) 需要使用到 jackon 包 


	@ResponseBody
	@RequestMapping(value="/ajax")
	public PageParam ajax(String ename,Integer curPage) throws IOException{
		
		
		//獲取查詢數據
		PageParam  pp= empsev.showEmp(ename, curPage);
		
		return pp;		
		
	}

還需配置上消息轉換器


 

<mvc:annotation-driven>
		<mvc:message-converters>
		
		
			<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
				<property name="supportedMediaTypes">
					<list>
						<value>text/html;charset=utf-8</value>
						 <!-- application 可以在任意 form 表單裏面 enctype 屬性默認找到  -->
						<value>application/x-www-form-urlencoded</value>
						<value>application/json;charset=utf-8</value>
					</list>
				</property>
			
			</bean>
			
		</mvc:message-converters>
	</mvc:annotation-driven>

  

   




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章