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

JSP中Action屬性的功能是什么

這篇文章主要介紹“JSP中Action屬性的功能是什么”,在日常操作中,相信很多人在JSP中Action屬性的功能是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”JSP中Action屬性的功能是什么”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)高淳免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

1. 完整的action

﹤action path="/aFullAction"
type="somePackage.someActionClass"﹥
name="someForm"
input="someJSP.jsp"
﹤forward name="successful" path="someJSP.jsp"/﹥
﹤forward name="failed" path="someOtherJSP.jsp"/﹥
﹤/action﹥

首先,Struts的ActionServlet接收到一個(gè)請(qǐng)求,然后根據(jù)struts-config.XML的配置定位到相應(yīng)的mapping(映射);接下來假如form的范圍是request或在定義的范圍中很難找到這個(gè)form,創(chuàng)建一個(gè)新的form實(shí)例;取得form實(shí)例以后,調(diào)用其reset ()方法,然后將表單中的參數(shù)放入form,假如validate屬性不為false,調(diào)用validate()方法;假如validate()返回非空的ActionErrors,將會(huì)被轉(zhuǎn)到input屬性指定的URI,假如返回空的ActionErrors,那么執(zhí)行Action的execute() 方法,根據(jù)返回的ActionForward確定目標(biāo)URI。

這樣做的效果是:execute()僅當(dāng)validate()成功以后才執(zhí)行;input屬性指定的是個(gè)URI。

2. 僅有Form的action

﹤action path="/aFormOnlyAction"
type="org.apache.struts.actions.ForwardAction"
name="someForm"
input="someJSP.jsp"
parameter="someOtherJSP.jsp"
/>

首先,Struts會(huì)在定義的scope搜尋someForm,假如找到則重用,假如很難找到則新建一個(gè)實(shí)例;取得form實(shí)例以后,調(diào)用其reset()方法,然后將表單中的參數(shù)放入form,假如validate屬性不為false,調(diào)用validate()方法;假如validate()返回非空的 ActionErrors,將會(huì)被轉(zhuǎn)到input屬性指定的URI,假如返回空的ActionErrors,那么轉(zhuǎn)到parameter屬性指定的目標(biāo) URI。

這樣做的效果是:沒有action類能夠存放我們的業(yè)務(wù)邏輯,所以任何需要寫入的邏輯都只能寫到form的reset()或 validate()方法中。validate()的作用是驗(yàn)證和訪問業(yè)務(wù)層。因?yàn)檫@里的action映射不包括forward(也沒有意義),所以不能重定向,只能用默認(rèn)的那個(gè)forward。這種僅有form的action能夠用來處理數(shù)據(jù)獲取并forward到另一個(gè)JSP來顯示。

3. 僅有Action的action

﹤action path="/anActionOnlyAction"
type="somePackage.someActionClass"﹥
input="someJSP.jsp"
﹤forward name="successful" path="someJSP.jsp"/﹥
﹤forward name="failed" path="someOtherJSP.jsp"/﹥
﹤/action﹥

首先,ActionServlet接收到請(qǐng)求后,取得action類實(shí)例,調(diào)用execute()方法;然后根據(jù)返回的ActionForward在配置中找forward,forward到指定的URI或action。

這樣做的效果是:沒有form實(shí)例被傳入execute()方法,于是execute()必須自己從請(qǐng)求中獲取參數(shù)。Action能夠被forward或重定向。這種action不能處理通過HTML FORM提交的請(qǐng)求,只能處理鏈接式的請(qǐng)求。

4. 僅有JSP的action

﹤action path="/aJSPOnlyAction"
type="org.apache.struts.actions.ForwardAction"
parameter="someOtherJSP.jsp"
/﹥

首先,ActionServlet接到請(qǐng)求后調(diào)用ForwardAction的execute()方法,execute()根據(jù)配置的parameter屬性值來forward到那個(gè)URI。

這樣做的效果是:沒有任何form被實(shí)例化,比較現(xiàn)實(shí)的情形可能是form在request更高級(jí)別的范圍中定義;或這個(gè)action被用作在應(yīng)用程式編譯好后充當(dāng)系統(tǒng)參數(shù),只需要更改這個(gè)配置文檔而無需重新編譯系統(tǒng)。

5. 兩個(gè)action對(duì)應(yīng)一個(gè)form

﹤action path="/anAction"
type="somePackage.someActionClass"﹥
name="someForm"
input="someJSP.jsp"
﹤forward name="successful" path="/anotherAction.do"/﹥
﹤/action﹥
﹤action path="/anotherAction"
type="somePackage.someOtherActionClass"﹥
name="someForm"
input="someOtherJSP.jsp"
﹤forward name="successful" path="someResultJSP.jsp"/﹥
﹤/action﹥

就每個(gè)單獨(dú)的action來講,處理上并沒有和完整的action有什么實(shí)質(zhì)的區(qū)分。這個(gè)組合模式能夠被用來傳遞命令對(duì)象(form)。需要注意的是在后一個(gè)action中同樣會(huì)調(diào)用form的reset()和validate()方法,因此我們必須確保form中的信息不被重寫。

處理的方式大致分為兩種:

a) 在request中放入一個(gè)指示器表明前一個(gè)action有意向后一個(gè)action傳遞form,從而在后一個(gè)action能夠保留那個(gè)form中的值,這一方式只能在使用forward時(shí)使用。b) 當(dāng)使用redirect而不是forward時(shí),能夠把指示器放在session或更高的級(jí)別,在命令鏈的***一環(huán)將這個(gè)指示器清除。

﹤action path="/anAction"
type="somePackage.someActionClass"﹥
name="someForm"
input="someJSP.jsp"
﹤forward name="successful" path="/anotherAction.do" redirect="true"/﹥
﹤/action﹥
﹤action path="/anotherAction"
type="somePackage.someOtherActionClass"﹥"
name="someOtherForm"
input="someOtherJSP.jsp"
﹤forward name="successful" path="someResultJSP.jsp"/﹥
﹤/action﹥

這個(gè)組合方式跟前一種在流程上沒有太大區(qū)分,只是我們現(xiàn)在對(duì)于兩個(gè)action分別提供了form,于是代碼看上去更加清楚。于是我們能夠分別處理Web應(yīng)用程式的輸入和輸出。值得注意的是,后一個(gè)action同樣會(huì)嘗試往form中寫入那些參數(shù),但是我們能夠這樣處理:

a) 在后一個(gè)form中使用另一套屬性名;

b) 只提供getter而不提供setter。

大致的處理是這樣:

前一個(gè)action接收輸入、驗(yàn)證、然后將數(shù)據(jù)寫入業(yè)務(wù)層或持久層,重定向到后一個(gè)action,后一個(gè)action手動(dòng)的從業(yè)務(wù)層/持久層取出數(shù)據(jù),寫入form(通過其他方式),交給前臺(tái)JSP顯示。

這樣做的好處是不必保留輸入form中的值,因此能夠使用redirect而不是forward。這樣就降低了兩個(gè)action之間的耦合度,同時(shí)也避免了不必要的重復(fù)提交。

到此,關(guān)于“JSP中Action屬性的功能是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

網(wǎng)站名稱:JSP中Action屬性的功能是什么
URL網(wǎng)址:http://aaarwkj.com/article46/gpjheg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、網(wǎng)站策劃靜態(tài)網(wǎng)站、微信公眾號(hào)網(wǎng)站設(shè)計(jì)、小程序開發(fā)

廣告

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

微信小程序開發(fā)
国产亚洲日本精品二区| 久久亚洲天堂色图不卡| 超碰97精品在线观看| 国产免费很黄很色视频| 国产精品日本一区二区| 日本不卡一二三区在线观看| 国产一区二区三区性色| 久久亚洲第一视频网站| 国产亚洲精品精品国产亚洲| 亚洲精品黄色片中文字幕| 99在线精品热视频| 日本在线看片一区二区| 国产亚洲日本精品二区| 亚洲黄色av一区二区三区| 亚洲一区二区婷婷久久| 蜜臀国产综合久久第一页| 亚洲最大成人综合福利网| 亚洲综合av伊人久久| 欧美黄片网站在线观看| 日本爱爱一区二区三区| 国产日韩欧美亚洲中文国| av人妻熟女少妇蒂亚| 夜夜爽精品国产亚洲av成人| 激情小说婷婷亚洲综合| 亚洲综合国产一二三四五区| 男女爱爱视频网站久久精选| 久久这里有精品免费观看| 国产大学生情侣在线视频| 国产一区二区精品日韩| 国产精品99久久久久久人| 三级精品一区二区三区| 日韩精品亚洲一级在线观看| av东京热狠狠男人的天堂| 国产av蜜臀一区二区三区| 后入视频国产在线观看| 国产日韩精品专区一区| 91在线播放国产视频| 溪乱毛片一区二区三区| 中文字幕免费日本在线| 午夜美女精品福利视频| 国产丝袜美腿诱惑久久|