http://localhost:8080/ProjectName/path1/path2/path3/XX.action
首先会判断以/path1/paht2/path3为namespace的package是否存在,
1.若存在,则检查该package下是否有name为XX的action,若有则执行,否则报错。
2.若不存在,判断其父路径即以/path1/path2为namespace的package是否存在,重复1或2步骤
直到在某package下找到name为XX的action。若namespace为" / "时仍未找到则报错
例如,struts.xml文件中配置的一个package如下:
<package name="testStruts" extends="struts-default" namespace="/aaa">
<action name="login" class="pkg.LoginAction">
<result name="success">/loginSuccess.jsp</result>
<result name="fail">/loginFail.jsp</result>
</action>
</package>
此时启动tomcat访问不同链接的响应如下:
此时没有namespace为/bbb/aaa和/bbb的package,所以会报错
修改namespace(默认为" / "):
<package name="testStruts" extends="struts-default">
<action name="login" class="pkg.LoginAction">
<result name="success">/loginSuccess.jsp</result>
<result name="fail">/loginFail.jsp</result>
</action>
</package>