欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

struts2動(dòng)態(tài)方法-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供蔚縣網(wǎng)站建設(shè)、蔚縣做網(wǎng)站、蔚縣網(wǎng)站設(shè)計(jì)、蔚縣網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、蔚縣企業(yè)網(wǎng)站模板建站服務(wù),十年蔚縣做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。>動(dòng)態(tài)方法調(diào)用 在Struts2中動(dòng)態(tài)方法調(diào)用有三種方式,動(dòng)態(tài)方法調(diào)用就是為了解決一個(gè)Action對(duì)應(yīng)多個(gè)請(qǐng)求的處理,以免Action太多 第一種方式:指定method屬性 這種方式我們前面已經(jīng)用到過,類似下面的配置就可以實(shí)現(xiàn) <action name="chainAction" class="chapter2.action.Chapter2Action" method="chainAction"> <result name="chainAction" type="chain">redirect</result> </action> <action name="plainText" class="chapter2.action.Chapter2Action" method="plainText"> <result name="plainText" type="plainText">/WEB-INF/JspPage/chapter2/plaintext.jsp</result> </action> 第二種方式:感嘆號(hào)方式(需要開啟),官網(wǎng)不推薦使用這種方式,建議大家不要使用. 用這種方式需要先開啟一個(gè)開關(guān) <constant name="struts.enable.DynamicMethodInvocation" value="true" /> 將此常量設(shè)置為true,這種方式才能使用,使用見示例 Action package chapter3.action; public class Chapter3Action { public String result1(){ return "result1"; } public String result2(){ return "result2"; } } Jsp中訪問方式 <body> <a href="${basePath}/chapter3/chapter3Action!result1">result1</a><br> <a href="${basePath}/chapter3/chapter3Action!result2">result2</a><br> </body> 如果配置了后綴,必須這樣寫: /chapter4/chapter4Action!create.action XML中配置方式 <package name="chapter3" namespace="/chapter3" extends="struts-default"> <action name="chapter3Action" class="chapter3.action.Chapter3Action"> <result name="result1">/WEB-INF/JspPage/chapter3/result1.jsp</result> <result name="result2">/WEB-INF/JspPage/chapter3/result2.jsp</result> <result name="chapter3">/WEB-INF/JspPage/chapter3/chapter3.jsp</result> </action> </package> 第三種方式:通配符方式(官網(wǎng)推薦使用) 首先得關(guān)閉開關(guān) <constant name="struts.enable.DynamicMethodInvocation" value="false" /> 這一種方式是由第一種轉(zhuǎn)變過來的,我們可以看到,第一種方式有很多重復(fù)的代碼,那么我們可以進(jìn)行變形,看下面的代碼 <action name="chapter3_*" class="chapter3.action.Chapter3Action" method="{1}"> <result name="test">/…/test.jsp</result> </action> chapter3_*這里的*就是你呆會(huì)要匹配的字符串,即你在后面的請(qǐng)求中得這樣寫 http://...../ chapter3_create 或 http://...../ chapter3_update注意,這時(shí)你action中必須有create和update方法與之匹配,甚至還可以這樣匹配 <action name="chapter3_*" class="chapter3.action.Chapter3Action" method="{1}"> <result name="test">/…/{1}.jsp</result> </action> 但是這時(shí)一定要有對(duì)應(yīng)的JSP頁面存在,并且相應(yīng)的路徑不能錯(cuò),這就對(duì)我們的命名進(jìn)行了強(qiáng)制性的規(guī)定,一定要規(guī)范. 課堂示例: Action public class Chapter4Action extends ActionSupport { public String list(){ return "list"; } public String create(){ return "create"; } public String index(){ return "index"; } } XML: <action name="chapter4_*" class="chapter4.action.Chapter4Action" method="{1}"> <result name="{1}">/WEB-INF/JspPage/chapter4/chapter4_{1}.jsp</result> </action> 訪問Servlet API 有時(shí)我們需要用到Request, Response, Session,Page, ServletContext這些我們以前常用的對(duì)象,那么在Struts2中怎么樣使用到這些對(duì)象呢,通常有三種方式. 間接訪問1 //向Session中放 ActionContext.getContext().getSession().put("wdpc", "Session中的WDPC"); //向request中放 ActionContext.getContext().put("wdpc","request中的WDPC"); //向application中放 ActionContext.getContext().getApplication().put("wdpc", "Application中的WDPC"); 取值方式: ActionContext.getContext().getSession().get("wdpc"); 間接訪問2 Struts2中提供了一個(gè)靜態(tài)類,他里面的方法可以獲取到我們的HttpServletResponse, HttpServletRequest, 然后呢就可以還原到我們以前的使用方式了. 直接訪問 雖然Struts2提供了ActionContext來訪問Servlet API,但是這種方式畢竟不能直接獲取Servelt API實(shí)例,為了在Action中直接訪問Servlet API,Struts2還提供了一系列接口 ServletContextAware 實(shí)現(xiàn)此接口后,可以取得ServletContext ServletRequestAware 實(shí)現(xiàn)此接口后,可以取得HttpServletRequest ServletResponseAware 實(shí)現(xiàn)此接口后,可以取得HttpServletResponse SessionAware 實(shí)現(xiàn)此接口后,可以取得HttpSession,注意,這里有點(diǎn)特殊,取得的是一個(gè)Map<String,Object> session,攔截器負(fù)責(zé)將session中存儲(chǔ)的鍵值進(jìn)行解析,并一一對(duì)應(yīng). 所以我們通常的做法是: public class BaseAction implements ServletResponseAware, ServletRequestAware, SessionAware { protected HttpServletResponse response; protected HttpServletRequest request; protected Map<String, Object> session; public void setServletResponse(HttpServletResponse response) { this.response = response; } public void setServletRequest(HttpServletRequest request) { this.request = request; } public void setSession(Map<String, Object> session) { this.session = session; } public HttpServletResponse getResponse() { return response; } public void setResponse(HttpServletResponse response) { this.response = response; } public HttpServletRequest getRequest() { return request; } public void setRequest(HttpServletRequest request) { this.request = request; } public Map<String, Object> getSession() { return session; } } 為了讓BaseAction能有驗(yàn)證的功能,并且不能被實(shí)例化,開發(fā)中我們會(huì)這樣做: public abstract class BaseAction extends ActionSupport implements ServletResponseAware, ServletRequestAware, SessionAware 然后讓我們每個(gè)模塊的Action來繼承這個(gè)BaseAction類,然后我們就可以在Action中直接使用Servelt的API了.

分享標(biāo)題:struts2動(dòng)態(tài)方法-創(chuàng)新互聯(lián)
當(dāng)前URL:http://aaarwkj.com/article16/dedcgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司、服務(wù)器托管網(wǎng)站設(shè)計(jì)公司、電子商務(wù)網(wǎng)站營銷、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
亚洲国产精品自拍第一页| 国产国产乱老熟视频网站| 国产成人久久久精品一区| 蜜臀av网站在线播放| 99热精品在线免费观看| 欧美精品欧美精品一区二区| 欧美熟妇精品一级视频| 在线看黄视频网站永久免费| 97人妻人人澡人人添人人爽| 真实夫妻露脸爱视频九色网| 国产乱国产乱老熟部视频| 一本久久综合亚洲鲁鲁五月天| av免费在线观看网页| 国产美女直播亚洲一区色| 欧美激情片免费在线观看| 亚洲人妻av一区二区| 午夜久久精品国产亚洲av| 三级视频一区二区三区| 国产一区日本二区欧美三区| 亚洲欧美国产精品久久久| 亚洲国内精品一区二区在线| 尹人大香蕉在线视频| 欧美日韩国产综合一区二区| 手机蜜臀av在线播放| 日本爱爱一区二区三区| 国产白丝免费在线观看| 丰满人妻在线一区二区三区| 国产区二区三区在线视频| 亚洲欧美二区中文字幕| 国产一级性生活高清在线| 99国产精品的热久久| 亚洲人午夜射精精品日韩| av全欧国男人在线天堂| 日本精品亚洲一区二区三区| 日韩欧美精品另类在线| 色婷婷综合激情一区二区| 日本一区二区电影在线看| 国产在线乱码一区二区| 亚洲欧洲av男人的天堂| 欧美国产精品中文字幕| 91精品国产高清91久久久久久|