你的位置:首页 > Java教程

[Java教程]struts2的包和命名空间


struts2提供了命名空间的功能,主要是为了处理同一个WEB应用中包含同名Action的情形。struts2以命名空间的方式来管理Action,同一个命名空间里不能有同名的Action,不同的命名空间里可以有同名的Action.

struts2不支持为单独的Action设置命名空间,而是通过namespace属性来为包下的所有Action指定共同的命名空间。如果配置<package.../>时没有指定namespace属性,则该包下的所有Action处于默认的包空间下。


<?<!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" 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名