struts2的开发步骤主要如下:
①在web.xml中,定义核心的filter拦截用户请求。
因为web应用时基于请求/响应架构的应用,所以无论哪种MVC框架都需要在web.xml中配置核心的filter。struts2中配置如下:
<!-- 定义struts2的核心filter -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng
.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<!-- 让struts2的核心filter拦截所有请求 -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
②如果需要以POST方式提交请求,则需要定义包含表单数据的JSP页面。如果是GET方式的,则无须这一步。
③定义处理用户请求的action类。
这是MVC框架中的控制器,负责调用model中当然方法。
MVC的核心底层机制:核心filter接收到用户请求后,进行简单的预处理,再通过简单的反射创建Action类,通过Action类的方法处理请求。
那么怎么知道怎么创建哪个Action类的实例?主要是两种方法:
a、利用配置文件:将Action与对应的Action类成对配置。
b、利用约定:约定xxx.action总是以XxxAction类来处理请求。
④配置action。
配置action就是指定哪类请求由哪个action类处理,从而控制器可以根据配置创建合适的action实例,并调用相应的action方法。常用的配置方法如下:
<action name="login" class="org.crazyit.app.action.LoginAction">
......
</action>
以上配置说明的就是,用户请求login,将由org.crazyit.app.action.LoginAction类进行处理。
⑤配置处理结果和物理视图资源之间的映射关系。
当action类处理完请求后, 会返回一个处理结果,可以称之为逻辑视图。而逻辑视图需要与物理视图关联起来才有价值。配置如下
<action name="login" class="org.crazyit.app.action.LoginAction">
<result name="input">/login.jsp</result>
<result name="success">/welcom.jsp</result>
</action>
即当LoginAction类返回的是input时,则进入login.jsp;当返回success时,则实际进入welcom.jsp。
⑥编写视图资源。(暂时不说太理解,待后续补充)
经过以上6个过程后,就基本完成了Struts2的流程开发,也就是可以执行一个完整的请求/响应过程。