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

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

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

開(kāi)通VIP
struts中DispatchAction的使用
第一種
例如:類(lèi)LoginAction繼承DispachAction,:

public class LoginAction extends DispatchAction {
    public ActionForward loginValidate(ActionMapping mapping, ActionForm form,
                                       HttpServletRequest request,
                                       HttpServletResponse response) {

        LoginForm loginForm = (LoginForm) form;
        ActionForward forward = new ActionForward();
        ...
        return forward;
    }

    public ActionForward deleteUser(ActionMapping mapping, ActionForm form,
                                    HttpServletRequest request,
                                    HttpServletResponse response) {
        LoginForm loginForm = (LoginForm) form;
        ActionForward forward = new ActionForward();
        ...
        return forward;
    }
}

一個(gè)驗證信息正確性loginValidate,一個(gè)刪除一個(gè)記錄deleteUser方法,

method=方法名來(lái)指定要調用的方法。

新建一個(gè)jsp頁(yè)面login.jsp,注意:form表單的action的值:::

<html:form action="/loginAction.do?method=loginValidate" method="POST">      用戶(hù)名:
      <html:text property="au_lname"/>
      <br>
      <html:submit property="submit" value="Submit"/>
      <br>
      <html:reset value="Reset"/>
    </html:form>

驗證信息。


 

再建一個(gè)jsp頁(yè)面delete.jsp,主要內容如下:::

<html:form action="/loginAction.do?method=deleteUser" method="POST">      用戶(hù)名:
      <html:text property="au_lname"/>
      <br>
      <html:submit property="submit" value="Submit"/>
      <br>
      <html:reset value="Reset"/>
    </html:form>

根據用戶(hù)名刪除。

 

在struts-config.xml配置一個(gè)parameter="method"屬性鍵值對:

<action-mappings>
    <action name="loginForm" parameter="method" path="/loginAction" scope="request" type="com.aptech.dispatchactiondemo.action.LoginAction">
      <forward name="error" path="/error.jsp" />
      <forward name="success" path="/success.jsp" />
      <forward name="deletesuccess" path="/deletesuccess.jsp" />
    </action>
</action-mappings>

 

第二種

這一種的struts-config.xml與第一種的相同,也要有parameter=""屬性。

分析以下第一種方式:Action中有兩個(gè)方法,對應兩個(gè)jsp頁(yè)面、具體為對應兩個(gè)表單、兩個(gè)action="/loginAction.do"路徑,

而第二種方法是只有一個(gè)jsp頁(yè)面、即一個(gè)表單,具體如下:

...
<h1>下面表單中的“添加”和“修改”按鈕都可以提交表單,但不是JSF</h1>
<p>
    <html:form action="/demoAction.do" method="POST">
      <%--提交的路徑還是*.do --%>
      userName:
      <html:text property="userName"/>
      <br>
      password:
      <html:password property="password"/>
      <br>
      <input type="hidden" name="method" value="add"/>
      <%--

        添加了一個(gè)hidden隱藏文本域,name的值method與

        struts-config.xml里面的parameter的值method相同

      --%>
      <input type="submit" onclick="method.value='add'" value="添加"/>
      <input type="submit" onclick="method.value='modify'" value="修改"/>
      <%--兩個(gè)sumbit按鈕,在onclick方法上更改method的值--%>
    </html:form>
...

上面的表單有兩個(gè)提交按鈕,特別的是有一個(gè)hidden隱藏域的作用。

 

再就是驗證的問(wèn)題:

一般流程是如果表單數據未通過(guò)ActionForm的驗證,則會(huì )返回struts-config.xml中該Action對應的input指定的路徑。
但在繼承的DispatchAction類(lèi)中,多個(gè)Action指向同一個(gè)配置文件,舉個(gè)小例:
現有兩個(gè)頁(yè)面(用戶(hù)注冊頁(yè)面、用戶(hù)資料修改頁(yè)面)指向同一Action(繼承自DispatchAction)和ActionForm(驗證信息基本相同),當ActionForm驗證失敗時(shí),分別需要返回到注冊頁(yè)面和修改頁(yè)面,但struts-config.xml中的input只能設置一個(gè)值,這時(shí)怎么辦?


雖然你的XXXDispatchAction的class實(shí)例只有一個(gè),例如com.xyh.emp.EmployeeAction, 但是在struts-config.xml的ActionMappings里面可以映射為多個(gè) <action> 標記,例如:

<action
path= "/registerEmployee "
input= "/registerEmployee.jsp "

parameter= "method "
name= "employeeForm "
attribute= "employeeForm "
scope= "request "
validate= "true "
type= "com.xyh.emp.EmployeeDispatchAction ">

<forward name= "detail " path= "/detailEmployeeInfo.jsp " />
</action>

<action
path= "/editEmployee "
input= "/editEmployee.jsp "

parameter= "method "
name= "employeeForm "
attribute= "employeeForm "
scope= "request "
validate= "true "
type= "com.xyh.emp.EmployeeDispatchAction ">

<forward name= "detail " path= "/detailEmployeeInfo.jsp " />
</action>

那么在JSP里面就可以這么分別描述表單標簽。
· <html:form action= "registerEmployee.do "/>
· <html:form action= "editEmployee.do "/>

這樣你不僅能為不同的行為指定不同的“action”, 自然就可以使用不同的input頁(yè), 分別指定validate是true或者false, 甚至可以使用不同的ActionForm。

說(shuō)白了就是DispatchAction的類(lèi)實(shí)例只有一個(gè), 但是可以通過(guò)不同的path映射為不同的“行為”, 這不是Struts的缺點(diǎn),反而正好是它的優(yōu)點(diǎn)。

Validator框架對ActionFrom進(jìn)行驗證的時(shí)候有兩種識別FormBean的方式, 一種是使用BeanName,就是action標簽里面的name= "employeeForm ", 另一種是使用path,就是action標簽里面的path= "/regEmployee ", 那么在使用了DispatchAction的情況下,如果使用Validator進(jìn)行驗證的話(huà), 你的XXXXForm只需要繼承ValidatorActionForm或DynaValidatorActionForm, 然后在validation.xml文件里面form標簽里面的name屬性使用該映射action的path就可以了。


本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
struts1 問(wèn)題 報錯 集錦
2. struts2中一個(gè)Action處理多個(gè)方法
3 Struts Login Application Using Action Form Tutorial
Struts預定義的三種重要Action類(lèi)
Struts DispatchAction,表單帶method參數選擇執行方法
CSDN技術(shù)中心 Struts心得—DispatchAction使用日記
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

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