Struts 2中實(shí)現(xiàn)Ajax的三種方式
Ajax本質(zhì)上和普通的HTTP請求是一樣的,只不過普通的HTTP請求是給人看的,而Ajax請求是給JS代碼去用的。
所以Ajax請求的頁面一般比普通的HTTP請求的響應(yīng)內(nèi)容還要簡單,可能是一個頁面的一部分,也可能是xml、json等結(jié)構(gòu)化的數(shù)據(jù),還可能是一個簡單的字符串。
所以,在Struts 2中使用Ajax,Action一般就不會調(diào)用一個jsp視圖來顯示了(如果Ajax請求內(nèi)容是頁面的一部分也可能調(diào)用jsp視圖),而是通過一些其他的方式。
下面介紹了三種方法,用于Action實(shí)現(xiàn)Ajax請求。
方法1:依賴Servlet API
在Action的方法中return NONE或return null表示直接用Action來處理,而不需要調(diào)用result,所以在配置文件的action標(biāo)簽中也沒有result標(biāo)簽。
這里直接獲取到Servlet中的HttpServletResponse對象,通過response的輸出流寫一個字符串,和不使用Struts 2直接用Servlet類似。
方法2:使用result type="stream"
在Struts 2的文檔中推薦了一個比上一個方法更簡單的方式,使用type為stream的result。通過這種方法,可以不依賴于Servlet API,所以單元測試會更方便。
在struts配置文件中,result的type設(shè)為stream。其中包含兩個參數(shù),第一個是contentType,表示響應(yīng)的類型,如果有中文的話最好設(shè)置一下編碼,第二個參數(shù)是用來指定Action中的對應(yīng)的輸入流,它的默認(rèn)值就是inputStream,所以可以省略。
方法3:struts 2 json插件
上面兩種方法可以返回的內(nèi)容很隨意,可以是任何字符串。
在很多Ajax請求會用到j(luò)son字符串,因?yàn)樗梢院芊奖愕霓D(zhuǎn)換成JavaScript對象。
使用struts2-json-plugin
可以很方便的生成json(用上面的兩種方法調(diào)用json工具生成json也是不錯的選擇,這樣可以不用使用這個插件)。
在package中extends應(yīng)該改為json-default而不是struts-default,result的type設(shè)為json。
通過瀏覽器打開這個頁面可以看到這個json:
{"age":22,"friends":["姚明","林丹"],"name":"xxg"}
總結(jié)
以上所述是小編給大家介紹的Struts 2中實(shí)現(xiàn)Ajax的三種方式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- jQuery ajax請求struts action實(shí)現(xiàn)異步刷新
- 使用struts2+Ajax+jquery驗(yàn)證用戶名是否已被注冊
- 通過Ajax兩種方式講解Struts2接收數(shù)組表單的方法
- JQuery+Ajax+Struts2+Hibernate框架整合實(shí)現(xiàn)完整的登錄注冊
- struts2+jquery實(shí)現(xiàn)ajax登陸實(shí)例詳解
- ajax交互Struts2的action(客戶端/服務(wù)器端)
- ajax+json+Struts2實(shí)現(xiàn)list傳遞實(shí)例講解
- ajax struts2 下拉框賦值(適合所有)
- struts,ajax出現(xiàn)亂碼的解決方法
相關(guān)文章
IDEA遇到Internal error. Please refer to http://jb. gg/ide/crit
這篇文章主要介紹了IDEA遇到Internal error. Please refer to http://jb. gg/ide/critical-startup-errors的問題及解決辦法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-08-08Spring中利用SchedulingConfigurer實(shí)現(xiàn)動態(tài)定時任務(wù)配置的示例
定時任務(wù)是一項至關(guān)重要的功能,它們使得我們能夠按照預(yù)定的時間執(zhí)行特定的任務(wù),本文主要介紹了Spring中利用SchedulingConfigurer實(shí)現(xiàn)動態(tài)定時任務(wù)配置的示例,感興趣的可以了解一下2024-05-05java 音頻轉(zhuǎn)換wav格式標(biāo)準(zhǔn)音頻的操作
這篇文章主要介紹了java 音頻轉(zhuǎn)換wav格式標(biāo)準(zhǔn)音頻的操作,主要是使用ffmpeg命令進(jìn)行轉(zhuǎn)換,該工具類主要是為了將各類音頻轉(zhuǎn)為wav標(biāo)準(zhǔn)格式,其中可以調(diào)節(jié)采樣率、聲道數(shù)等指標(biāo),依賴maven環(huán)境,需要的朋友可以參考下2021-10-10Java中websocket消息推送的實(shí)現(xiàn)代碼
這篇文章主要介紹了Java中websocket消息推送的實(shí)現(xiàn)代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02