struts2配置文件:
struts各标签中属性的作用package: 代表一个包。管理action配置。在用一个包下面不能有同名的action
name: 包名.在一个项目中不能出现同名的包。
extends: 继承。类似于类的继承。如果一个包继承另一个包,那么就会把父包的功能继承下来。
我们开发的包就必须继承struts-default包。
namespace: 名称空间。区分不同的包的访问路径。默认值 “/”
用户访问Action的路径搜索规则:
http://localhsot:8080/day28/namespace/action的name
http://localhost:8080/day28_struts/user/a/b/login2.action ok
http://localhost:8080/day28_struts/user/a/login2.action ok
http://localhost:8080/day28_struts/user/login2.action ok
http://localhost:8080/day28_struts/a/user/login2.action 不行!!
用户访问: http://localhost:8080/day28_struts/user/a/b/login2.action
先搜索: http://localhost:8080/day28_struts/user/a/b/login2.action 没有, 有就返回
接着搜索: http://localhost:8080/day28_struts/user/a/login2.action 没有, 有就返回
再搜索 : http://localhost:8080/day28_struts/user/login2.action 有, 有就返回 (为止)
abstract: 表示当前包是否抽象。如果当前包是抽象包,那么不能含有action.
抽象包中一般用来定义拦截器,公共视图,不做具体的业务。
<package name="user" extends="struts-default" namespace="/" abstract="false">
<!-- 配置Action http://localhost:8080/day28_struts/login.action-->
action配置:
name: action的名称。用于访问该Action的路径
class: Action业务对象的类名。一定是全名(包名+类名),这里struts2是用反射构造Action对象的
method: 执行的业务方法。不写默认值 execute
result配置:
name: 视图的标记。在一个Action中名称不要重复!
type: 跳转的类型。
redirect: 重定向
dispatcher: 转发(默认值)
redirectAction: 重定向到Action
chain: 转发到Action。可以在不同Action中通过request共享数据
stream: 用在下载文件的时候。
文本内容: 跳转到的页面或者Action
<result name="list" type="redirectAction">
<param name="actionName">user_listUI.action</param> 转发到这一个地址去
<param name="user.name">${nameStr}</param><!-- ognl表达式获取title信息 -->
</result>
<result name="{1}">/WEB-INF/jsp/nsfw/user/{1}.jsp</result>
</action>
重点:
<action name="down_*" class="gz.itcast.action.DownAction" method="{1}">例如:这里的进入路径:down_down 则表示调用down方法,即*写什么就调用什么方法