struts2执行会先根据web.xml的配置,找到struts.xml!在struts.xml里根据请求的地址找到相应的package里action然后根据<result>做出反应!
<package>里:nameSpace和name!
你发送的请求可以是:packageName/actionName!
也可以是<package>的nameSpaceName/actionName!
但是当你发送请求时 可以不写<package>的name,如果要有spaceName的话就必须得加上spaceName,要不就会找到默认package为"/"或者为空的package里了!
看下代码:struts.xml:
<?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>
<constant name="struts.devMode" value="true" />
<package name="nameSpace" extends="struts-default" namespace="/spaceNameTest">
<action name="nameSpace1" class="cn.keith.action.NameSpaceTest">
<result name="success">/nameSpace.jsp</result>
</action>
</package>
<package name="main" extends="struts-default" namespace="/">
<action name="index" class="cn.keith.action.NameSpaceTest">
<result>/nameSpaceOther.jsp</result>
</action>
</package>
</struts>
看下jsp页面的请求:
<a href="spaceNameTest/nameSpace1">nameSpace的路径</a>
<a href="index">没有nameSpace</a>
其实就这么简单!