国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
超簡(jiǎn)單方法解決Struts2中一個(gè)action處理多個(gè)請(qǐng)求 - 左手可樂(lè) 右手白菜 - J...

超簡(jiǎn)單方法解決Struts2中一個(gè)action處理多個(gè)請(qǐng)求

關(guān)鍵字: struts2, action, 多個(gè)方法

    這幾天用Struts2+MySQL做名片管理系統(tǒng)的時(shí)候,遇到了一些問(wèn)題,或許別人看來(lái)不是什么問(wèn)題,但作為一個(gè)剛剛開(kāi)始學(xué)習(xí)Struts2的新手,很多東西對(duì)我來(lái)說(shuō)還是很有難度的.比如我現(xiàn)在要說(shuō)的在一個(gè)action中處理多個(gè)請(qǐng)求的問(wèn)題.

    簡(jiǎn)要描述一下問(wèn)題的產(chǎn)生:我要做的名片管理系統(tǒng)中的一個(gè)用戶管理模塊,其中有兩個(gè)最主要的方法就是登錄和注冊(cè),這兩個(gè)方法都是在UserAction中處理.而按照通常的狀況而言,一個(gè)Action中只會(huì)有一個(gè)execute方法,也就只能解決一個(gè)請(qǐng)求(大概看了下Struts,好像其中可以通過(guò)在form中加一個(gè)hidden元素,然后再在execute方法中用getCommond()的方法來(lái)進(jìn)行判別).不過(guò)我在Struts2中沒(méi)有發(fā)現(xiàn)類似的解決辦法,這也很有可能是我剛剛學(xué)習(xí)Struts2造成的,畢竟到現(xiàn)在我都還沒(méi)弄到一本完整的教材,就只是到處找了些零散的資料,然后,做的過(guò)程遇到問(wèn)題再自己猜想結(jié)合google找到的一些東西來(lái)尋求解決.

    遇到這個(gè)問(wèn)題之后,我自己開(kāi)始沒(méi)有想明白是什么狀況,該怎么解決.于是在網(wǎng)上找了下,找到的方法貌似都不是很簡(jiǎn)單,要么就很復(fù)雜,要么就要涉及一些比較深的知識(shí).后面我在執(zhí)行這個(gè)程序的時(shí)候,發(fā)現(xiàn)Eclipse提出的一個(gè)warning,而正是這個(gè)warning給了我很大的提示,讓我找到的解決方法.

    Warning是這樣的:No configuration found for the specified action: 'UserAction.action' in namespace: '/pages/user'. Form action defaulting to 'action' attribute's literal value. 原因就是我在struts.xml中定義的action的name與login.jsp中的form中的action的name不一致,將兩個(gè)的名字改成相同就好了,不要求以.action結(jié)束,如都為:LoginAction,也就是struts.xml中的<action name="LoginAction" class="main.UserAction">,和JSP頁(yè)面中的<s:form action="LoginAction" method="POST">.

    而在struts.xml中定義的action還有一個(gè)參數(shù)method,既然已經(jīng)可以根據(jù)action的name找到對(duì)應(yīng)的action,那還要這個(gè)參數(shù)做什么呢?另外,execute在不更改的情況下,也是默認(rèn)會(huì)調(diào)用的方法,再結(jié)合自己在網(wǎng)上找到的一些資料,我覺(jué)得可以嘗試一下將struts.xml中的action中的method進(jìn)行設(shè)置.于是就有了下面的兩個(gè)action的配置:struts.xml中的<action name="login" class="main.UserAction"  method="login">和JSP頁(yè)面中的<s:form action="login" method="POST">. 提交上面的表單form的時(shí)候,在struts.xml中找到該form對(duì)應(yīng)的action的方法為login(),于是就到類UserAction中找到該方法并調(diào)用.因而也就能夠調(diào)用UserAction類的login()方法了.
    這樣上面的問(wèn)題也就可以解釋了:因?yàn)閮蓚€(gè)地方定義的方法的名字不同,所以在點(diǎn)擊登錄進(jìn)行l(wèi)ogin.jsp的時(shí)候就會(huì)彈出上述提示,但由于struts.xml中只定義(配置)一個(gè)action,默認(rèn)的方法為execute(),故而編譯器還是能夠找到該方法進(jìn)行執(zhí)行.
    根據(jù)上面的推斷,因而可以再添加一個(gè)注冊(cè)頁(yè)面register.jsp,將其中的表單form定義為:<s:form action="register" method="POST">,而將struts.xml增加一個(gè)設(shè)置:<action name="register" class="main.UserAction" method="register">.這樣當(dāng)register.jsp的action請(qǐng)求被攔截器攔截之后通過(guò)struts.xml的配置就可以找到UserAction類的register()方法進(jìn)行相應(yīng)的處理了,因而也就可以實(shí)現(xiàn)一個(gè)UserAction中處理多個(gè)請(qǐng)求action了.

    PS:由于本人剛剛學(xué)習(xí)Struts2不到兩個(gè)星期,而且以前也沒(méi)有接觸過(guò)Struts方面的程序設(shè)計(jì).所以,肯定會(huì)有理解不對(duì)的地方,麻煩各位發(fā)現(xiàn)的朋友幫我指出來(lái),謝謝

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(四)
struts2 validate驗(yàn)證
標(biāo)簽package中的namspace的用法
Struts2的配置文件——struts.xml
Struts2全局跳轉(zhuǎn)與局部跳轉(zhuǎn)
Struts2的struts.xml中配置及通配符的使用
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服