Struts2框架学习(第二讲)

在上一篇文章中也提到了,struts2不需要依赖Servelet API,也不用像struts1一样需要继承HttpServlet,因此耦合度低,这也是我们在平时项目中之所以使用框架的原因。

今天要讲的action的流程:
1,流程
1)拦截器拦截请求,创建代理Action对象,执行方法,返回结果,界面跳转。
2)拦截器解析请求路径,获取Action的名称,到配置文件中查找action的完整类名,利用反射创建对象。

2、方法特点
public类型,无入参,返回值类型String 。

3、Action类和ActionProxy,ActionInvocation类的关系
这里写图片描述

ActionProxy是Action的代理类,通过解析配置文件获取Action类中名称和完整路径,利用反射机制创建的。

ActionInvocation是Action类的调用者,反射创建的ActionProxy类就存在ActionInvocaiton类中。

4、流程解析

1)http://127.0.0.1:8080/SSHDemo/list.action 客户端发出请求,struts2的过滤器拦截请求。并且创建action代理,然后根据配置文件mapper去匹配到对应的空间对应的action类中。
2)struts2配置文件对应的空间中该action映射的action类。action中没有指定执行方法默认为execute方法。

<action name="list" class="listAction">
<result name="success" >/WEB-INF/jsp/list.jsp</result>
</action>

3) action类中默认的执行方法,返回String类型的结果字符串。

public String execute() {
Map request = (Map) ActionContext.getContext().get("request");
request.put("list",service.selectList());
return "success";
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章