struts2的包和命名空間,struts2命名空間
struts2提供了命名空間的功能,主要是為了處理同一個WEB應用中包含同名Action的情形。struts2以命名空間的方式來管理Action,同一個命名空間裡不能有同名的Action,不同的命名空間裡可以有同名的Action.
struts2不支持為單獨的Action設置命名空間,而是通過namespace屬性來為包下的所有Action指定共同的命名空間。如果配置<package.../>時沒有指定namespace屬性,則該包下的所有Action處於默認的包空間下。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!--配置名為get的包,該包繼承了Struts2的默認包,指定該包的命名空間為/book --!>
<package name="get" namespace="/book" extends="struts-default">
<action name="getBooks" class="cn.ss.GetBookAction" method="execute">
<result name="success">/WEB-INF/JspPage/chapter1/HelloWorld.jsp</result>
</action>
</package>
</struts>
當某個包指定了命名空間後,該包下所有的Action處理的URL應該是命名空間+Action名,以上面例子為例,該包下包含了名為getBooks的Action,則該Action處理的URL為:
http://localhost:8080/namespace/book/getBooks.action
//8080是服務器的端口,namespace是應用名稱,book是該Action所在包對應的命名空間,而getBooks是Action名