Struts2——namespace、action、以及path问题
namespace(命名空間)
Namespace決定了action的訪問路徑,默認為“”,意味著可以訪問所有目錄下的/ass/sss/ss/index;囊括了所有package處理不了的action;
?
namespace可以寫成/,或是/xx、/xx/yy,對應action訪問路徑為/index.action,/xx/index.action或是/xx/yy/index.action
?
Package和namespace一般都是模塊名命名(package為了區分相同名字的action)
?
?<constant?name="struts.devMode"?value="true"?/>
<!-- 聲明包 -->
<package?name?=?"user"?extends?=?"struts-default"?namespace=”/user”>
<!-- 定義action -->
<action?name="login01"?class="ab.LoginAction01">
<result?name="success">/success.jsp</result>
</action>
</package>
?
action的使用:(具體的action的實現可以是一個普通的java類,最常使用的是從ActionSupport繼承,好處就是直接使用Struts2封裝好的方法);
Class是實現action的java類的包名.類名;
<action?name="login01"?class="ab.LoginAction01">
?
public?class?LoginAction01?extends?ActionSupport {
Public Sting execute(){
Return SUCCESS;
}
}
(xwork中的源碼ActionSupport)
過程圖:
?
?
3.path問題
Index.jsp中:<a href=”path/path.action”></a>
所以namespace=”/path”
注意:Struts2中的路徑問題是根據action的路徑而不是jsp路徑來確定,所以盡量不要使用相對路徑。
解決方法:就是統一使用絕對路徑 建議不要用redirect方法
?指定basePath ?默認加上項目的跟路徑
?
<%
String path=request.getContextPath();
String?basePath=request.getScheme()+"://"+request.getServerNam()+":"+request.getServerPort()+path+"/";
%>
?
<base?href="<%=basePath %>">???在返回首頁的時候
轉載于:https://www.cnblogs.com/llw1996/p/6576064.html
總結
以上是生活随笔為你收集整理的Struts2——namespace、action、以及path问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 女人梦到佛像预示什么意思
- 下一篇: 文章收藏(一)