在上一篇文章中我们在Struts.xml中看到了下面类似的代码:
<packagename="default" namespace="/" extends="struts-default">
<action name="hello">
<result >
/Hello.jsp
</result>
</action>
</package>
下面我们解释一下这段代码。
package就像我们java中写的那个包名一样,比如我们在同一个项目中有两个action都叫hello,如果他们在不同的包中就不会冲突。这里的包名一般的是以我们的模块区分。
这里的action表示我们在地址栏里请求的行为,原先我们都是直接在地址栏中输入一个网页文件的地址去请求一个文件,这里我们是请求action的名字,这个和以往不同。当我们在地址栏输入action的名字后,会根据一定的行为去操做,这个以后会说。然后返回一个字符串,再根据字符串去执行对应的result,这里的result我们什么属性也没有,默认的就是success。当返回success的时候,就会自动返回Hello.jsp文件到客户端浏览器。
这里我们在地址栏输入action,但是这个action是有要求的。在package中有一个属性是namespace,这个是命名空间。是标明以下的action是在此命名空间起作用的,如上面程序中的”/”,在/hello地址下,就会返回Hello.jsp文件。而在/***/hello地址下,就不会返回。
如果我们把namespace设置成为/XXX,则对应的访问地址必须是/XXX/action。
说到这里希望把命名空间说明白了。