日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【struts2】名为dispatcher的ResultType

發(fā)布時間:2025/3/21 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【struts2】名为dispatcher的ResultType 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  1)基本使用

  名稱為“dispatcher”的ResultType,在struts-default.xml里的配置如下:

<result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>

  通過配置可以看出,它對應的實現(xiàn)類是ServletDispatcherResult。

  如果采用JSP作為視圖的實現(xiàn)技術(shù),那么這個ResultType是最常用的。在這個ResultType的實現(xiàn)中,調(diào)用了javax.servlet.RequestDispatcher類的forward方法,也就是說它相當于是對RequestDispatcher的一個再包裝。

  既然是這樣,那么在Servlet中使用RequestDispatcher來進行頁面跳轉(zhuǎn)的特性,也就自然被“dispatcher”這個ResultType繼承下來了。那么Servlet中的RequestDispatcher,到底有什么特性呢?那就是是通過RequestDispatcher來進行頁面跳轉(zhuǎn),將會保持是同一個請求對象。這有什么好處呢?由于是同一個對象,那就意味著有同樣的數(shù)據(jù),而請求對象里面數(shù)據(jù)眾多,在Servlet的request對象里面,典型有如下數(shù)據(jù):

  • 參數(shù)區(qū)(parameter),就是用戶在頁面上填寫并提交的數(shù)據(jù)
  • Head區(qū),由瀏覽器在發(fā)出請求的時候,自動加入到請求包的數(shù)據(jù)
  • 屬性區(qū)(Attribute),由開發(fā)人員存儲在屬性區(qū)的值,通常是通過request.setAttribute方法、request.getAttribute方法來進行訪問
  • cookie區(qū),由瀏覽器在發(fā)出請求的時候,自動把相關(guān)的Cookie數(shù)據(jù)通過request傳遞到服務端

  好處是不是很大?因此這也是使用Struts2來進行web開發(fā)中最常使用的ResultType。

  2)特殊用法

  在<result>元素的定義中可以使用Action的execute方法運行之后的數(shù)據(jù)。怎么做呢?一起來看看示例。或許我們都已經(jīng)習慣于以下這種簡單的<result>配置:

<result name="toWelcome">/s2impl/welcome.jsp</result>

  里面用于指定jsp位置的字符串都是固定的。如果我們希望這個字符串是活動的,可以根據(jù)某些參數(shù)值來變化,該怎么做到呢?如果我們在Action中定義一個folder字符串,并在execute中或validate中對它進行賦值,這里我們放到validate中,代碼如下:

package cn.javass.hello.struts2impl.action; import com.opensymphony.xwork2.ActionSupport;public class HelloWorldAction extends ActionSupport { private String account; private String password; private String submitFlag; private String folder; public String execute() throws Exception { this.businessExecute(); return "toWelcome"; } public void validate(){ this.folder = "s2impl"; //放在這里的原因是:validate先與execute執(zhí)行,如果fieldError里面有值,execute就不執(zhí)行了if(account==null || account.trim().length()==0){ this.addFieldError("account", this.getText("k1")); } if(password==null || password.trim().length()==0){ this.addFieldError("password", this.getText("k2")); }if(password!=null && !"".equals(password.trim()) && password.trim().length()<6){ this.addFieldError("password", this.getText("k3")); } } /** * 示例方法,表示可以執(zhí)行業(yè)務邏輯處理的方法, */ public void businessExecute(){ System.out.println("用戶輸入的參數(shù)為==="+"account="+account+",password="+password+",submitFlag="+submitFlag); }public String getAccount() {return account;}public void setAccount(String account) {this.account = account;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getSubmitFlag() {return submitFlag;}public void setSubmitFlag(String submitFlag) {this.submitFlag = submitFlag;}public String getFolder() {return folder;}public void setFolder(String folder) {this.folder = folder;} } View Code

  那么,在<result>的定義中就可以引用folder這個變量,示例如下:

<package name="helloworld" extends="struts-default"> <action name="helloworldAction" class="cn.javass.hello.struts2impl.action.HelloWorldAction"> <result name="toWelcome" type="dispatcher">/${folder}/welcome.jsp</result> <result name="input">/${folder}/login.jsp</result> </action> </package>

  這樣配置的結(jié)果和前面寫死的路徑效果時完全一樣的。仔細觀察一下你會發(fā)現(xiàn),“${folder}”的寫法跟以前在jsp上寫的el表達式類似,而里面的“folder”是跟Action的屬性相對應的。

  3)更完整的配置方式

?  平時我們把result對應的jsp的路徑,直接作為<result>元素中的文本來配置,這是簡化的寫法,實際上對于dispatcher還有兩個參數(shù)可以配置,示例如下:

<result name="toWelcome" type="dispatcher"> <param name="location">/s2impl/welcome.jsp</param> <param name="parse">true</param> </result>

  location參數(shù)就是咱們平時寫的下一個jsp的位置,而parse參數(shù)決定了location是否可以通過使用OGNL來引用參數(shù),默認為true。其實,前面使用${folder}來引用Action的folder屬性的值的例子,就是使用的OGNL來引用參數(shù)。

  參考資料:http://www.iteye.com/topic/1124526

轉(zhuǎn)載于:https://www.cnblogs.com/ningvsban/p/3735025.html

總結(jié)

以上是生活随笔為你收集整理的【struts2】名为dispatcher的ResultType的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久免费资源 | 毛片在线免费观看网址 | 性做久久久久久 | 欧美aaaaaaaaa| 超碰97久久 | 男女啪啪免费看 | 美女被出白浆 | 伊人情人综合 | 黄页网站免费观看 | 日韩毛片中文字幕 | 欧美亚洲日本在线 | 有码在线视频 | 天天舔天天干天天操 | 翔田千里x88aⅴ | 99久久久久成人国产免费 | 一级黄色播放 | 电影寂寞少女免费观看 | 中文字幕人成人乱码亚洲电影 | 婷婷伊人综合中文字幕 | 亚洲综合伊人久久 | 九九九九久久久久 | 成人动漫在线播放 | 狠狠爱av| 亚色一区 | 日韩免费中文字幕 | 波多野结衣 久久 | 亚洲一区二区三区免费视频 | 伊是香蕉大人久久 | 日韩美女爱爱 | 国产又粗又猛又爽又黄91 | 午夜爱爱网站 | 超碰在线9 | 农村妇女毛片 | 五月激情丁香婷婷 | 久久久久97国产 | 苏晴忘穿内裤坐公交车被揉到视频 | 国产又粗又猛又爽又黄又 | 男人的天堂视频在线观看 | 四虎精品一区二区 | 特一级黄色大片 | 手机在线永久免费观看av片 | 久久黄色网 | 亚洲精品自拍视频 | 国产熟妇乱xxxxx大屁股网 | 午夜精品久久久久久久久久蜜桃 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 夜夜嗨老熟女av一区二区三区 | 亚洲国产一区在线观看 | 奇米影视四色777 | 美女免费看片 | 婷婷六月丁 | 三级网站免费看 | 成人黄色小视频 | 精品国产一区二区三区av性色 | 欧美视频一区二区在线观看 | 欧美一级一区二区三区 | 91素人约啪 | 亚洲一区不卡 | 免费在线h| 久久天堂av| 99国产视频 | 国产小视频一区 | 日韩精品视频在线免费观看 | 中文字幕av在线免费 | 熟女丝袜一区 | 99久久久国产精品无码性 | 日韩av片在线播放 | 日韩一级影视 | 日日操日日 | 色婷婷av国产精品 | 国产福利二区 | 国产丰满美女做爰 | 黄骗免费网站 | 日韩h视频 | 超碰97人人射妻 | 国产三级久久 | 免费在线小视频 | 精品欧美一区二区久久久 | 国产日韩欧美综合 | 中文字幕一区二区在线老色批影视 | 亚洲中文在线一区 | 久久男人的天堂 | 精品无码人妻一区二区三 | 国产精品成人国产乱 | 亚洲精品亚洲 | 日本黄色不卡 | 欧美日韩制服 | 全程粗话对白视频videos | 亚洲成人中文字幕在线 | 99国产视频| 狠狠干2017 | 男人天堂色 | 99er久久| 中文国语毛片高清视频 | 黄色一级片免费在线观看 | 久操视频在线免费观看 | 亚洲色图17p| 女人扒开屁股让我添 | 亚洲女女做受ⅹxx高潮 |