struts2入门(二)-知识总结
在学了struts2的环境搭建和最基本的开发步骤后,再来总结一些知识点,以便更好地理解(struts2基本开发步骤 见:http://lekihuo.iteye.com/blog/679103)
?
?一、关于struts.xml 配置文件
?
?
??? 1)package标记
??????? 在一对package标记中,可以配置多个action,实际应用中一般将有相似业务逻辑或者是同一个模块中的action配置在同一个package中,这跟Java代码中的package类似
??????? package属性介绍
????????1.name 必须的,其他包要继承该包,必须经过该属性进行引用
????????2.namespace 定义该包的命名空间,默认为“/”,命名空间做为访问该包下action路径的一部分,例如上面的action访问路径为:/a/b/hello
??????? 3. extends 默认继承了struts-default包,可使这个包下面默认应用了struts2一些新功能,如拦截器等
????????4.abstract 默认值为"fault",当 abstract=”true” 则该包内不能有action,struts-default.xml 就是这样的,该文件在struts2-core-2.0.12.jar中???? 2)include 标记
???????? 如果package、action、interceptors等配置比较多时,都放到一个struts.xml文件不太容易维护。因此,就需要将struts.xml文件分成多个配置文件,然后在struts.xml文件中使用< include>标签引用这些配置文件。这样做的优点如下:
?????? 结构更清晰,更容易维护配置信息,配置文件可以复用。要注意一下,用< include>引用的xml文件也必须是完整的struts2的配置。实际上< include>在引用时是单独解析的xml文件,而不是将被引用的文件插入到struts.xml文件中。
???? 3)action 标记
????????? 一个Action可以配置多次(只要action配置中的name不同即可)
?????action的属性:
?????????name 我们给Action起的名称,url中要用
???????? class 这个没的说,Action类的路径,默认为ActionSupport
???????? method? 要调用的action中的方法名,默认为execute方法
???? 附:Struts2里Action名称的搜索顺序
???? 如:根据上面的配置,在地址栏输入 htpp://.......app/a/b/c/d/hello.action
在Struts2中,首先会按照命名空间规则,先查"/a/b/c/d"这个命名空间下有无hello,没有此action后,会在"/a/b/c"这个命名空间查,以此类推,直至"/a/b"下查到有该action。还有一点,如果在"/a/b"下还是无法查到该action,则会继续到"/a"下查,还是没有,则会查默认名称空间"/",要是还没有,则页面提示找不到action?
???? 4)result 标记
?????????? 该标记用于配置跳转
?????result的属性
???????? name 默认值"success"
???????? type???转发类型,Struts2 中result常用的视图转发类型(dispatcher(默认)、redirect、redirectAction、plainText)
???? 注意:该标记指定的页面前如果不加"/",则表示相对路径。
???? 如上:把showHello.jsp前面的“/”去掉,则执行action后,会找/a/b/showHello.jsp