欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

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

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Struts預定義的三種重要Action類(lèi)

  • DispatchAction:一個(gè)Action 完成多個(gè)動(dòng)作
  • MappingDispatchAction(主要用他):一個(gè)Action 完成多個(gè)動(dòng)作,優(yōu)點(diǎn):思路清晰
  • LookupDispatchAction:用于一個(gè)表單多個(gè)提交按鈕。
注意:在使用繼承Struts預定義的Action類(lèi),一定不要覆蓋execute方法,否則會(huì )導致無(wú)法調用自定義Action相應方法。

DispatchAction類(lèi)(org.apache.struts.actions.DispatchAction)

DispatchAction類(lèi)是Action類(lèi)的子類(lèi),他提供了有實(shí)現的execute方法。

我們寫(xiě)的自定義Action類(lèi),可以繼承DispatchAction類(lèi),但不要覆蓋execute方法,可以在自定義類(lèi)中寫(xiě)反回值和參數表都與execute方法相同的方法,可以通過(guò)在struts-congfig.xml中為這個(gè)action的配置中添加一個(gè)參數,來(lái)判斷調哪一個(gè)方法,實(shí)際上DispatchAction類(lèi)就是通過(guò)反射機制,通過(guò)form中參數調用了自定義Action中的方法,當然這些方法的定義要符合規范,使用繼承DispatchAction類(lèi)的自定義的Action類(lèi),也就會(huì )共享同一的Action路徑。

注意:使用繼承DispatchAction類(lèi)的自定義的Action,只會(huì )匹配一個(gè)action路徑,只能共享一個(gè)ActionForm,如果加上校驗,會(huì )產(chǎn)生form表單的參數不一致的情況,會(huì )導致校驗無(wú)法通過(guò)。


例:
public class MyAction extends DispatchAction{
    ActionForward add(ActionForm form,HttpServletRequest request,HttpServletResponse                                         response ActionMapping mapping) throws Exception
        {
                    return mapping.findForward("sucess")                    
        }
}

<action path="/add"  type="MyAction" parameter="methodName">
    <!--parameter屬性是和form中隱藏域的名字相對應的-->
    <forward name="sucess" path="/sucess.jsp"/>
</action>

<from action="add.do" method="post">
   <input type="hidden" name="methodName" value="add"/>
   <!--
      使用隱藏域為struts傳遞要調用自定義Action中方法的方法名,是通過(guò)與struts-config.xml
      中action標簽中的parameter和name屬性相對應來(lái)獲取隱藏域的value。
   -->
   <input type="submit" value="submit"/>
</from>

MappingDispatchAction類(lèi)(org.apache.struts.actions.MappingDispatchAction)

MappingDispatchAction類(lèi)是DispatchAction的子類(lèi),他和DispatchAction不同點(diǎn)就是可以去匹配多個(gè)action路徑,這樣也就是結決了共用ActoinForm的校驗問(wèn)題了,多個(gè)Action的路徑使用同一的自定義Action類(lèi),這樣就不用共享同一個(gè)ActionForm,也就不會(huì )有校驗問(wèn)題了。


例:
public class MyAction extends MappingDispatchAction{
    ActionForward add(ActionForm form,HttpServletRequest request,HttpServletResponse                                         response ActionMapping mapping) throws Exception
        {
                    return mapping.findForward("add")                    
        }
        ActionForward del(ActionForm form,HttpServletRequest request,HttpServletResponse                                         response ActionMapping mapping) throws Exception
        {
                    return mapping.findForward("del")                    
        }
}

<action path="/add"  type="MyAction" parameter="add">
   <!--parameter屬性是指定調用方法的名字-->
   <forward name="add" path="/add.jsp"/>
</action>       
<action path="/del"  type="MyAction" parameter="del">
   <forward name="del" path="/del.jsp"/>
</action>

在JSP頁(yè)面中也不用在使用隱藏域傳遞參數,直接在form中的action中就可以直接使用xxx.do匹配了。
<form action="add.do" method="post">
   <input type="submit" value="submit"/>
</form>
<form action="del.do" method="post">
   <input type="submit" value="submit"/>
</form>

LookupDispatchAction(org.apache.struts.actions.LookupDispatchAction)

LookupDispatchAction類(lèi)也是DispatchAction類(lèi)的子類(lèi),他所實(shí)現的功能是解決一個(gè)表單多種提交問(wèn)題的
,他是通過(guò)使用資源文件,用submit按鈕的value來(lái)作為資源文件中的key所對應的值,通過(guò)這個(gè)值來(lái)找到對用的key,在使用這個(gè)key來(lái)獲得指定Map中所對應的值,這個(gè)值就是要調用的方法名。

submit的value---->MessageResource.properties中的key----->Map中key對相應的值---->action

例:
<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

<form method="post" action="${pageContext.request.contextPath}/lookup/adddel.do">
    <input type="submit" value="<bean:message key="button.add" />" name="methodName">
        <!--注意name="methodName"是和strut-config.xml中action標簽中的parameter屬性-->
    <input type="submit" value="<bean:message key="button.delete" />" name="methodName">
</form>

MessageResource.properties

button.add=add new user
button.delete=delete user

注意:在繼承LookupDispatchAction時(shí),要覆蓋getKeyMethodMap()方法,并定義Map,向Map中放入指定的鍵值對。

public class AddDelLookupDispatchAction extends LookupDispatchAction
{
    public Map getKeyMethodMap(){
        Map keyMethodMap= new HashMap();
        keyMethodMap.put("button.add", "add");
        keyMethodMap.put("button.delete", "delete");
        return keyMethodMap;
    }   
    public ActionForward add(ActionMapping mapping,ActionForm form,
                   HttpServletRequest request,HttpServletResponse response) throws Exception
    {   
        return mapping.findForward("add");
    }
    public ActionForward delete(ActionMapping mapping,ActionForm form,
                   HttpServletRequest request,HttpServletResponse response) throws Exception
    {
        return mapping.findForward("delete");
    }
}

<action   path="/lookup/adddel"  type="alan.struts.actions.AddDelLookupDispatchAction"
                  parameter="methodName">
            <forward name="add" path="/add.jsp"/>
            <forward name="delete" path="/delete.jsp" />
</action>
<message-resources parameter="alan.struts.message.MessageResource" />

自定義的Action類(lèi)的一些規則
1,盡量不要在A(yíng)ction類(lèi)中使用(靜態(tài))成員變量,如果使用要加上同步。
2,盡量使各模塊間的耦合性降低,最大限度的針對接口編程。
3,可以將共代碼方在覆蓋父類(lèi)的方法中,最后可以用super.xxx(xxx)來(lái)調用父類(lèi)的方法,使用父類(lèi)的實(shí)現,并加上了自定義的功能。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Struts DispatchAction,表單帶method參數選擇執行方法
struts中DispatchAction的使用
Struts第2天
運用Jakarta Struts的七大實(shí)戰心法
《簡(jiǎn)述培訓的流程》
CSDN技術(shù)中心 Struts心得—DispatchAction使用日記
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久