关闭

接触Struts2--理解Struts.xml标签

69人阅读 评论(0) 收藏 举报
分类:

<struts> 为根标签 没什么含义

<package>代表一个模块,模块里可以放多个action

属性name为模块的名称(唯一);

属性extends="struts-default"实际上是把 package为struts-default中的所有东西 继承过来。 这里面的东西是struts2运行的最基本的东西

属性namespace 决定其url 如:

<struts>
	<package name="helloworld" namespace="/" extends="struts-default">
		<action name="helloworldaction" class="cn.hpy.structs.action.HelloWorldAction">
			<result name="index">index.jsp</result>
		</action>
	</package>
</struts>
中 url为http://localhost:8080/day1_struts/helloworldactioin.actoin 红色斜杠为namespace(根目录:WebRoot);


如果改namespace=“/base”;

其url为http://localhost:8080/day1_struts/base/helloworldactioin.actoin .但是也会报错,它会以为index.jsp在/base文件夹下面。


小结:如果namespace为 "/",那么紧接着就该跟action中的name值(名称)。

但是/base后面加任何/abcdefgh...都能请求到action

原因:

查找规则确定的是 先查找/base/a下的helloworldaction.

再去查找/base下的hellloworldaction;


要解决这个 就需要在webroot下创建一个base文件夹


额外:

要解决继承功能也需要靠namespace 如下

<struts>
	<package name="helloworld" namespace="/" extends="struts-default">
		<action name="helloworldaction" class="cn.hpy.structs.action.HelloWorldAction">
			<result name="index">index.jsp</result>
		</action>
	</package>
	<package name="abc" namespace="/abc" extends="helloworld">
	</package>
</struts>

访问url为http://localhost:8080/day1_struts/abc/helloworldactioin.actoin 就是通过 abc包去访问的

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:498次
    • 积分:73
    • 等级:
    • 排名:千里之外
    • 原创:7篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档