成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > Struts2和Ajax數(shù)據(jù)交互示例詳解

Struts2和Ajax數(shù)據(jù)交互示例詳解

熱門標(biāo)簽:立陶宛地圖標(biāo)注 河間市地圖標(biāo)注app 東平縣地圖標(biāo)注app 中國地圖標(biāo)注不明確情況介紹表 地圖標(biāo)注推銷坑人 怎樣在地圖標(biāo)注文字 大眾點(diǎn)評400電話怎么申請 上海企業(yè)外呼系統(tǒng)價錢 電銷機(jī)器人 長春

前言

我們從Web 2.0的隨波逐流,Ajax的大放異彩說起,Struts2框架自己整合了對Ajax的原生支持(struts 2.1.7+,之前的版本可以通過插件實(shí)現(xiàn)),框架的整合只是使得JSON的創(chuàng)建變得異常簡單,并且可以簡單的融入到Struts2框架中,當(dāng)然這只是在我們需要JSON的時候才會顯得流光溢彩。

ajax請求在項目中常常使用,今天就平時掌握的總結(jié)一下,關(guān)于使用ajax請求到Struts2中的action時,前臺頁面與后臺action之間的數(shù)據(jù)傳遞交互問題。

這里我主要記錄下自己所掌握的幾種方式??梢愿鶕?jù)自己平時項目的需求來進(jìn)行選擇。

 1.使用stream類型的result

此種類型可以直接讓Struts2中的action向客戶端瀏覽器生成文本響應(yīng)。

示例:

jsp頁面:

%@ taglib prefix="s" uri="/struts-tags" %>
%@ page contentType="text/html;charset=UTF-8" language="java" %>
html>
head>
 title>ajax提交登錄信息/title>
 %--導(dǎo)入js插件--%>
 script src="${PageContext.request.contextPath}/demo/js/jquery-1.4.4.min.js" type="text/javascript">/script>
/head>
body>
h3>異步登錄/h3>
s:form id="loginForm" method="POST">
 s:textfield name="username"/>
 s:textfield name="psw"/>
 input id="loginBtn" type="button" value="提交">
/s:form>
div id="show" style="display:none;">/div>
/body>
script type="text/javascript">
 $("#loginBtn").click(function(){
 $("#show").hide();
 //發(fā)送請求login 以各表單里歌空間作為請求參數(shù)
 $.get("login",$("#loginForm").serializeArray(),
  function(data,statusText){

  $("#show").height(80)
   .width(240)
   .css("border","1px solid black")
   .css("border-radius","15px")
   .css("backgroud-color","#efef99")
   .css("color","#ff0000")
   .css("padding","20px")
   .empty();
  $("#show").append("登錄結(jié)果:"+data+"br/>");
  $("#show").show(600);

 },"html");//指定服務(wù)器響應(yīng)為html
 });
/script>
/html>

處理邏輯的action:

/**
 * Description:eleven.action
 * Author: Eleven
 * Date: 2018/1/26 18:09
 */
public class LoginAction extends ActionSupport{
 private String username;
 private String psw;
 //輸出結(jié)果的二進(jìn)制流
 private InputStream inputStream;

 public String login() throws Exception{
 if(username.equals("tom") psw.equals("123")){
  inputStream = new ByteArrayInputStream("恭喜您,登錄成功".getBytes("UTF-8"));
 }else{
  inputStream = new ByteArrayInputStream("對不起,登錄失敗".getBytes("UTF-8"));
 }
 return SUCCESS;
 }

 //提供get方法
 public InputStream getInputStream() {

 return inputStream;
 }

 public String getUsername() {
 return username;
 }

 public void setUsername(String username) {
 this.username = username;
 }

 public String getPsw() {
 return psw;
 }

 public void setPsw(String psw) {
 this.psw = psw;
 }
}

action中除了接收頁面?zhèn)鬟f的用戶名、密碼外,還有一個InputStream類型的成員變量,并為它提供了對應(yīng)的get方法。get方法中返回的二進(jìn)制流將會直接輸出給客戶端瀏覽器。

struts.xml配置:

?xml version="1.0" encoding="UTF-8" ?>
!DOCTYPE struts PUBLIC
 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 "http://struts.apache.org/dtds/struts-2.3.dtd">
struts>
 constant name="struts.enable.DynamicMethodInvocation" value="false" />
 constant name="struts.devMode" value="true" />
 package name="default" namespace="/" extends="struts-default">
 action name="login" class="eleven.action.LoginAction" method="login">
  result type="stream">
  !--指定stream流生成響應(yīng)的數(shù)據(jù)類型-->
  param name="contentType">text/html/param>
  !--指定action中由哪個方法去輸出InputStream類型的變量-->
  param name="inputName">inputStream/param>
  /result>
 /action>
 /package>
/struts>

在瀏覽器中瀏覽該頁面,并輸入相關(guān)信息,然后提交,可以看到后臺action直接將消息數(shù)據(jù)返回給頁面,而同時頁面也不需要進(jìn)行刷新,而是直接在局部進(jìn)行顯示,這是利用了ajax的異步發(fā)送請求。注意,此種方式需要在struts.xml文件中要配置類型為stream的流,并設(shè)置inputName屬性,并在action中提供InputStream對應(yīng)的get方法。

運(yùn)行截圖:

2.使用json類型的result

有個jar包struts2-json-plugin-2.3.16.3.jar,可以為Struts2增加JSON插件,即當(dāng)action中的result的類型設(shè)為json時,也可以在客戶端js中異步調(diào)用action,并且action中返回的數(shù)據(jù),可以直接被JSON插件序列化成json格式的字符串,并將該字符串返回給客戶端瀏覽器。

示例:

jsp頁面:

%@ taglib prefix="s" uri="/struts-tags" %>
%@ page contentType="text/html;charset=UTF-8" language="java" %>
html>
head>
 title>ajax提交登錄信息/title>
 %--導(dǎo)入js插件--%>
 script src="${PageContext.request.contextPath}/demo/js/jquery-1.4.4.min.js" type="text/javascript">/script>
/head>
body>
h3>異步登錄/h3>
s:form id="loginForm" method="POST">
 s:textfield name="username"/>
 s:textfield name="psw"/>
 input id="loginBtn" type="button" value="提交">
/s:form>
div id="show" style="display:none;">/div>
/body>
script type="text/javascript">
 $("#loginBtn").click(function(){
 $("#show").hide();
 //發(fā)送請求login 以各表單里歌空間作為請求參數(shù)
 $.get("login",$("#loginForm").serializeArray(),
  function(data,statusText){
  //此時的data中包含username,psw,age
  $("#show").height(80)
   .width(300)
   .css("border","1px solid black")
   .css("border-radius","15px")
   .css("backgroud-color","#efef99")
   .css("color","#ff0000")
   .css("padding","20px")
   .empty();  
  alert(data);
  $("#show").append(data+"br/>");
  $("#show").show(600);
 },"html");
 });
/script>
/html>

action代碼:

public class LoginAction extends ActionSupport{
 private String username;
 private String psw;
 private int age;
 public String login() throws Exception{
  age = 18;
  return SUCCESS;
 }

 public String getUsername() {
  return username;
 }

 public void setUsername(String username) {
  this.username = username;
 }

 public String getPsw() {
  return psw;
 }

 public void setPsw(String psw) {
  this.psw = psw;
 }

 public int getAge() {
  return age;
 }

 public void setAge(int age) {
  this.age = age;
 }
}

struts.xml中配置:

?xml version="1.0" encoding="UTF-8" ?>
!DOCTYPE struts PUBLIC
 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 "http://struts.apache.org/dtds/struts-2.3.dtd">
struts>
 constant name="struts.enable.DynamicMethodInvocation" value="false" />
 constant name="struts.devMode" value="true" />
 package name="default" namespace="/" extends="struts-default,json-default">
  action name="login" class="eleven.action.LoginAction" method="login">
   result type="json">
    param name="noCache">true/param>
    param name="contentType">text/html/param>
   /result>
  /action>
 /package>
/struts>

在瀏覽器中瀏覽該頁面,并輸入相關(guān)信息,然后提交,可以看到后臺action直接將消息數(shù)據(jù)返回給頁面,而同時頁面也不需要進(jìn)行刷新,而是直接在局部進(jìn)行顯示,這是利用了ajax的異步發(fā)送請求。注意,此種方式需要在struts.xml文件中要配置package繼承json-default,且配置result類型為json,并在action中提供需要傳遞數(shù)據(jù)的對應(yīng)的get方法。當(dāng)然了前提是添加了struts2-json-plugin-2.3.16.3.jar,不然struts2是不會自動將數(shù)據(jù)轉(zhuǎn)為json格式的數(shù)據(jù)的。

效果截圖:

故我們可以總結(jié)一下result類型為json的步驟:

  1.導(dǎo)入jar包:struts2-json-plugin-2.3.7.jar  

  2.配置struts返回的結(jié)果集視圖 設(shè)置type=json

  3.設(shè)置對應(yīng)action所在的package繼承自json-default

  4.將要返回的數(shù)據(jù)提供get方法

  5.在struts.xml中設(shè)置返回數(shù)據(jù)的格式

對于第5步設(shè)置返回數(shù)據(jù)的格式,可以根據(jù)自己項目的需要,去具體設(shè)置,這里只是簡單舉例,并沒有拿復(fù)雜的數(shù)據(jù),如果是返回一個List集合,那么對于數(shù)據(jù)的格式可以進(jìn)行如下設(shè)置:

result name="test" type="json">
  !-- 設(shè)置數(shù)據(jù)的來源從某個數(shù)據(jù)得到 -->
   !-- 過濾數(shù)據(jù)從gtmList集合中得到,且只獲取集合中對象的name,跟uuid屬性 -->      param name="root">gtmList/param>
  param name="includeProperties">
    \[\d+\]\.name,
    \[\d+\]\.uuid
  /param> 
/result>

上面這種方式外,還有下面這種方式

result name="ajaxGetBySm" type="json">
   !-- 一般使用這種方式 先用來源過濾action默認(rèn)從整個action中獲取所有的(前提是此action中沒有g(shù)etAction()方法)
    但是為了方便 一般不寫root:action這個
    然后再用包含設(shè)置進(jìn)行過濾設(shè)置
   -->    
   param name="root">action/param>
   param name="includeProperties">
     gtmList\[\d+\]\.name,
     gtmList\[\d+\]\.uuid
   /param>
 /result>

上面兩種方式都是設(shè)置數(shù)據(jù)從gtmList集合中獲取且,只獲取對象的屬性為name與uuid的。這里只做簡單的舉例,具體可自己下去深入研究。

附上json類型的Result允許指定的常用參數(shù):

另外,除了以上兩種是struts2支持的ajax外,其實(shí)如果單純的只是可以讓服務(wù)器端可以跟客戶端瀏覽器進(jìn)行數(shù)據(jù)交互,可以使用response.getWrite()這種方式。

PrintWriter printWriter =response.getWriter();
printWriter.print("success");

選擇哪種方式?

對于我,如果只是對增刪改功能是否成功的一個flag判斷的數(shù)據(jù),則可優(yōu)先選擇response.getWriter().print("xxx")與設(shè)置result類型為stream的方式,但是如果是需要返回大量對象數(shù)據(jù),在頁面接收然后進(jìn)行數(shù)據(jù)展示,例如頁面通過ajax請求,需要后臺action返回一個list集合,則就要選擇配置result類型為json的方式了。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • ajax+json+Struts2實(shí)現(xiàn)list傳遞實(shí)例講解
  • struts2+jquery實(shí)現(xiàn)ajax登陸實(shí)例詳解
  • 通過Ajax兩種方式講解Struts2接收數(shù)組表單的方法
  • ajax struts2 下拉框賦值(適合所有)
  • ajax交互Struts2的action(客戶端/服務(wù)器端)
  • 使用struts2+Ajax+jquery驗(yàn)證用戶名是否已被注冊
  • Ajax+Struts2實(shí)現(xiàn)驗(yàn)證碼驗(yàn)證功能實(shí)例代碼

標(biāo)簽:內(nèi)江 四川 銅川 遼寧 營口 益陽 玉樹 本溪

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Struts2和Ajax數(shù)據(jù)交互示例詳解》,本文關(guān)鍵詞  Struts2,和,Ajax,數(shù)據(jù),交互,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Struts2和Ajax數(shù)據(jù)交互示例詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Struts2和Ajax數(shù)據(jù)交互示例詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    美女免费黄视频网站| sihu成人| 国产伦精品一区二区三区妓女| 中文字幕成人乱码在线电影| 懂色av一区二区三区蜜臀| 免费在线观看一区二区| 国产一区二区免费看| 成年人在线看| 日韩一卡二卡三卡四卡| 青青草免费观看免费视频在线| 激情亚洲小说| 亚洲人成电影网站色www| 亚洲制服中文字幕| y4480在线8影院| 久久精品视频在线观看免费| 免费短视频成人日韩| 国产美女精品视频免费观看| 综合久久av| 国产欧美精品xxxx另类| 久久中文字幕一区二区三区| 99re6热在线精品视频播放速度| 好吊妞无缓冲视频观看| 日韩二区在线观看| 性欧美hd调教| 激情av在线播放| 一二三四视频在线社区中文字幕2| 亚洲图片欧洲图片av| ed2k情侣啪啪91av| 三上悠亚国产精品一区二区三区| 久久久久久亚洲精品中文字幕| 亚洲国产视频在线观看| 啊啊啊久久久| 久久99国产精品自在自在app| 午夜欧美福利视频| 91成人在线观看喷潮蘑菇| 久播影院第一理论片| 欧美xxxxbbbb在线播放| 国产精品久久久久久久久久久久久久久久| 国产欧美日韩亚洲一区二区三区| 国产三级一区二区| 日韩欧美视频一区二区三区| 亚洲天堂999| 亚洲妇熟xx妇色黄蜜桃| 欧洲亚洲妇女av| 91色国产在线| www.亚洲一区二区三区| 久久久成人的性感天堂| 97视频人免费观看| 无遮挡动作视频在线观看免费入口| 国产中文字幕在线免费观看| 国产亚洲视频中文字幕视频| 亚洲精华国产精华| 怡红院一区二区三区| 欧美精品激情在线观看| xxxx性欧美黑人| 三妻四妾完整版在线观看电视剧| 欧美天天综合色影久久精品| 国产一区二区三区中文字幕| 欧美高清在线观看| 国产又粗又猛视频| 亚洲国产精品久久卡一| 永久看片925tv| 久久成人在线视频| 亚洲精品久久久久久久久久久久| 久久精品国产精品亚洲毛片| 欧美成人bangbros| 最近的中文字幕在线看视频| 日韩视频一区二区三区| 曰韩少妇与小伙激情| 亚洲色图偷窥自拍| 国产精品一区二区三区毛片淫片| 在线日韩国产精品| 国产伊人久久| 中文精品一区二区| 蜜桃av一区二区三区电影| 91xxx在线观看| 欧美xxxxxbbbbb| 蜜臂av日日欢夜夜爽一区| 国产成人精品免费看在线播放| 最新国产精品自拍| 精品网站999www| 男女一区二区三区免费| 99热这里只有精品9| 日韩动漫在线观看| 99在线观看免费| 韩日精品视频一区| 欧美极品色图| 亚洲女人18毛片水真多| 草碰在线视频| 日日天天久久| 天天色天天综合网| 国产女人aaa级久久久级| 国产亚洲精品久久久久久| 狠狠热免费视频| 综合激情网站| 欧美xxbbb1手交| 高清国产在线观看| 亚洲 欧美 日韩在线| http;//www.99re视频| 日韩欧美不卡在线观看视频| 天天操天天干天天玩| 在线观看午夜av| 麻豆传媒一区二区| 精品午夜视频| 伊人网站在线| 色老头在线一区二区三区| 精品久久国产一区| 丝袜亚洲另类丝袜在线| 久久久91精品国产一区不卡| 毛片在线视频播放| 日本精品一区在线观看| 日韩欧美中文字幕制服| 女人18毛片水真多18精品| 亚洲欧美另类在线视频| 亚洲av激情无码专区在线播放| 嫩呦国产一区二区三区av| 欧美午夜激情在线| 亚洲精品一二三四区| 久久久久久久久97黄色工厂| 福利在线免费视频| 青青一区二区| 亚洲自拍另类综合| 伊人久久噜噜噜躁狠狠躁| 久久久久久77777| 黄色一级大片在线免费看国产一| 日日噜噜夜夜狠狠久久丁香五月| 亚洲精品高潮| 亚洲综合欧美| 菠萝蜜一区二区| 精品视频一二三| 国产精品高潮在线| 国产原创精品在线| 欧美91在线| 亚洲一区二区日韩| 黄视频在线观看免费| www.国产高清| 亚洲品质自拍视频网站| 里番全彩acg☆无翼乌全彩3d| 亚洲最大成人综合网| 特一级黄色片| 天天色天天上天天操| 91午夜伦伦电影理论片| 精品中文av资源站在线观看| 五月婷婷中文字幕| 激情文学一区| 第一福利在线视频| 99久久久久久久久久| 欧美成人精品在线| 青青草国产在线观看| 青青a在线精品免费观看| 亚洲视频一区在线| gv天堂gv无码男同在线观看| 一本久道久久综合狠狠爱| 99在线观看免费| 99精品国产一区二区| 亚洲av无码一区二区三区性色| 四虎影院免费在线| 亚洲精品福利在线| 三级成人黄色影院| 黄色激情视频在线观看| 人妻偷人精品一区二区三区| 日韩中文字幕亚洲一区二区va在线| 天堂а√在线中文在线| 日本私人网站在线观看| 男人的天堂免费在线视频| 在线视频你懂得| 久久97超碰国产精品超碰| 久久99亚洲精品| 国产成人精品一区二区免费视频| 国产视频精品一区二区三区| 日本猛少妇色xxxxx免费网站| 日日夜夜天天综合| 欧美日韩精品欧美日韩精品| 精品人妻av一区二区三区| 少妇精品无码一区二区| 国产又黄又爽视频| 日韩脚交footjobhd| 无码aⅴ精品一区二区三区| 亚洲人与黑人屁股眼交| 天堂av免费在线| 欧美极品美女视频网站在线观看免费| 一道本在线观看视频| 黄色a**址| 国产精品视频一区二区三区四蜜臂| 91麻豆免费看片| 亚洲国产精品人人爽夜夜爽| 天堂av电影在线观看| 日本19禁啪啪吃奶大尺度| 久久国产免费观看| 亚洲成av人片在线观看香蕉| 穿情趣内衣被c到高潮视频| 成人性生交大片免费看视频直播| 日本在线视频一区| 色88888久久久久久影院野外| 公交车强行挺进岳身体| 亚洲成色在线综合网站2018站| 国产91在线精品| 性の欲びの女javhd| 欧美放荡办公室videos4k| 欧美色图12p| 亚洲人成电影网站色www| av在线不卡网| 精品国产免费人成在线观看| 国模私拍国内精品国内av| 国内精品国产成人| 亚洲自拍偷拍一区二区| 午夜亚洲性色视频| 一区二区三区国产免费| 精品国产亚洲av麻豆| 亚欧美中日韩视频| 少妇熟女视频一区二区三区| 亚洲黄色在线观看视频| 99porn视频在线| 在线观看福利电影| 亚洲区欧洲区| 丰满少妇一区二区三区专区| 91在线观看免费| 亚洲熟妇无码一区二区三区导航| 精品人妻少妇AV无码专区| 免费观看国产视频| 午夜精品久久久久99热蜜桃导演| 推川ゆうり中文亚洲二区| 亚洲色偷偷色噜噜狠狠99网| 91免费国产在线观看| 青娱乐av在线| 在线午夜影院| 亚洲精品国产精品国自产观看| yy111111少妇影院日韩夜片| 国产精品老熟女视频一区二区| 国产欧美一区二区白浆黑人| 一区二区三区免费在线视频| 爱久久·www| 婷婷五月色综合| 在线观看欧美日韩电影| 国产精品免费人成网站| 一区二区三区精品在线观看| 久久新电视剧免费观看| 天堂视频免费在线观看| 国产精品久久久久免费a∨大胸| 欧美激情资源网| 亚洲激情小视频| 欧美精三区欧美精三区| 国产精品视频一区麻豆| 激情欧美日韩一区二区| 国产精品区免费视频| 欧美日韩精品亚洲精品| 日韩欧美激情在线| 99视频精品全国免费| 日韩av在线导航| 中文字幕天天干| 亚洲av综合色区无码一二三区| 国产精品日韩三级| 性欧美video另类hd3| 久久综合亚洲| 日本网站在线观看一区二区三区| 久久电影天堂| 国产女人18毛片水真多18| 色网在线视频| 亚洲精品福利在线| 久久精品凹凸全集| 欧美成人sm免费视频| 在线的色视频| 成人毛片100部免费看| 最新中文字幕亚洲| 一本大道av一区二区在线播放| 大杳蕉精品视频在线观看| 欧美激情第一区| 久久久久成人精品无码| 99在线免费视频观看| 成人在线免费电影网站| 国产农村妇女毛片精品久久| 久久久99精品久久| 91狠狠综合久久久| 天堂av资源在线观看| 国产一区二区三区免费观看在线| 亚洲欧美日韩中文字幕在线观看| 99国产精品视频免费观看一公开| 精品一区二区在线观看| 黄色三级中文字幕| 色影视在线视频资源站| 免费h视频网站| 在线观看日本黄色| 日本视频一区二区| 夜夜春成人影院| 欧美福利视频一区二区| 精品国产一区二区三区久久久狼| 欧美视频国产精品| 久久久精品国产亚洲| 黄网站app在线观看大全免费视频| 欧洲免费av| 99久久综合狠狠综合久久止| 男女视频免费网站| av日韩在线播放| 不卡视频一区二区三区| 日韩激情一二三区| 亚洲视频香蕉人妖| 一区二区三区av电影| 麻豆精品蜜桃一区二区三区| 精品一区二区三区五区六区七区| 欧美精品aaaa| 日韩在线视频导航| 国产美女一区二区三区| 久久免费视频3| 午夜av在线免费观看| 一级片在线观看| 妞干网在线视频观看| 中文字幕在线2018| 91丨九色丨国产丨porny| 中国av在线播放| 久久在线视频| 国产精品视频在线免费观看| 91免费精品国自产拍在线不卡| 国产啊啊啊视频在线观看| 一个人看的www视频在线免费观看| 精品一区久久久| av一区二区三区在线| 91精品动漫在线观看| 亚洲人成电影网站色xx| 高清日韩电视剧大全免费| 免费亚洲电影在线| 中文久久乱码一区二区| 亚洲人的天堂男人爽爽爽| 国产主播一区| 色激情天天射综合网| 欧美/亚洲一区| 亚洲欧美偷拍卡通变态| 青草国产精品| 黄色片免费在线|