struts1設定檔之input

來源:互聯網
上載者:User

標籤:style   com   使用   strong   檔案   資料   

<action path="/*Person" type="cn.itcast.PersonAction" scope="request" input="/{1}.jsp" parameter="method">
<forward name="list" path="/WEB-INF/pages/list.jsp"/>
</action>
使用萬用字元,只不過命名的時候*的位置跟{1}保持一致.
我寫的這個action繼承dispatchAction,parameter=method
假如裡面有add方法和edit方法()
訪問add方法的時候,使用這個地址:/addPerson.do?method=add-->這個時候input就是/add.jsp

訪問edit方法的時候,使用這個:/editPerson.do?method=edit-->此時input就是/edit.jsp


input="/register.jsp"指定formbean的資料是由哪個頁面提供的。說明:提供此屬性的目的在於formbean校正失敗時,程式方便跳回formbean的輸入頁面,通過struts1錯誤資訊標籤,顯示校正失敗資訊。


struts配置中的路徑與模式比對
struts配置中的action,有一個path屬性,它表明請求的URI
一般情況下,我們需要在設定檔中明確指定某個特定的URI,如path=“/user/add”
在一些大型應用中,如果能夠制定一套嚴格的路徑及其操作規範的話,我們可以利用path的路徑模式比對功能,來簡化struts設定檔繁瑣的編寫工作量
假設有如下規範:
路徑匹配規範樣本
對user對象的所有處理Action,均需要以如下的路徑進行訪問:
/user/add.do – 處理使用者添加的有關操作
/user/delete.do – 處理使用者刪除的有關操作
/user/update.do – 處理使用者更新的有關操作

所有操作(Action)對應的JSP如下:
所有操作成功(失敗)之後的轉向頁面,有如下命名規範:
/user/add.do -> /user/add_success.jsp或/user/add_error.jsp
/user/delete.do -> /user/delete_success.jsp或/user/delete_error.jsp

所有操作的輸入介面有如下命名規範:
添加操作 -> /user/add_input.jsp
更新操作 -> /user/update_input.jsp

Action配置樣本
<action
path="/user/*"
type="com.bjsxt.struts.web.actions.UserAction"
name="userForm"
parameter="method"
>
<forward name="index" path="/user/index.jsp"/>
<forward name="success" path="/user/{1}_success.jsp"/>
<forward name="error" path="/user/{1}_error.jsp"/>
<forward name="input" path="/user/{1}_input.jsp"/>
</action>
Action配置解釋
所有的/user/*.do請求,都將由UserAction這個類來處理,UserAction類繼承DispatchAction,它將根據傳入的method參數的值,來分發到不同的方法來進行處理
在UserAction類中的任何一個方法,都可以返回index/success/error/input等名稱的ActionForward
根據請求路徑的不同,即使調用相同的傳回碼,但其轉向也將不同,如:
/user/add.do?method=add請求,將被轉寄給UserAction類的add方法處理,假設它用mapping.findForward(“success”);來返回成功頁面,這將轉向的實際JSP頁面是:/user/add_success.jsp
而/user/delete.do?method=delete請求,將被轉寄給UserAction類的delete方法處理,假設它用mapping.findForward(“success”);來返回到刪除成功頁面,這將轉向的實際JSP頁面是:/user/delete_success.jsp,所以,不同URI請求的相同名稱的返回頁面將是不同的。
而/user/index.do請求(或者任何一個其它請求,如/user/abcd.do或/user/test.do),都因為沒有傳遞method參數,而觸發調用UserAction的unspecified方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.