看下面的一張圖來了解一個URL匹配Struts 2的動作名稱空間。
P.S 包中的「name」不會影響結果,只是給一個有意義的名字。
struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="default" namespace="/" extends="struts-default"> <action name="SayWelcome"> <result>/pages/welcome.jsp</result> </action> </package> <package name="common" namespace="/common" extends="struts-default"> <action name="SayWelcome"> <result>/common/pages/welcome.jsp</result> </action> </package> <package name="user" namespace="/user" extends="struts-default"> <action name="SayWelcome"> <result>/common/user/welcome.jsp</result> </action> </package> </struts>
Struts 2的動作名稱空間對映到檔案夾結構。
3 JSP頁面檢視具有相同的檔案名,但是在不同的模組位置。
根 – pages/welcome.jsp
<html> <head> <title>Struts2名稱空間範例 - tw511.com</title> </head> <body> <h1>Struts2名稱空間範例</h1> <h4>Welcome - namespace = "root"</h4> </body> </html>
Common 模組 – common/pages/welcome.jsp
<html> <head> <title>Struts2名稱空間範例 - tw511.com</title> </head> <body> <h1>Struts2名稱空間範例</h1> <h4>Welcome - namespace = "common"</h4> </body> </html>
User 模組 – user/pages/welcome.jsp
<html> <head> <title>Struts2名稱空間範例 - tw511.com</title> </head> <body> <h1>Struts2名稱空間範例</h1> <h4>Welcome - namespace = "user"</h4> </body> </html>
範例 1
URL : http://localhost:8080/Struts2Example/SayWelcome.action
將匹配根名稱空間。
<package name="default" namespace="/" extends="struts-default"> <action name="SayWelcome"> <result>/pages/welcome.jsp</result> </action> </package>
這會顯示 pages/welcome.jsp 頁面的內容
範例 2
URL : http://localhost:8080/Struts2Example/common/SayWelcome.action
這會匹配 common 名稱空間的內容:
<package name="common" namespace="/common" extends="struts-default"> <action name="SayWelcome"> <result>/common/pages/welcome.jsp</result> </action> </package>
這會顯示 common/pages/welcome.jsp 頁面的內容
範例 3
URL : http://localhost:8080/Struts2Example/user/SayWelcome.action
這會匹配 common 名稱空間的內容:
<package name="user" namespace="/user" extends="struts-default"> <action name="SayWelcome"> <result>/common/user/welcome.jsp</result> </action> </package>
這會顯示 user/pages/welcome.jsp 頁面的內容.
程式碼下載:http://pan.baidu.com/s/1hqe1nZe