初识Struts2简单理解

在使用之前要知道Struts2框架带来的便利,他有什么好处。

之所以使用Struts2框架是因为它简化了编程,提高了开发效率。增加的程序的可读性和可维护性。

Struts框架是建立在Web容器之上的,用来快速构建灵活、稳定Web应用程序的一种框架。该框架由Apache基金会研发,是一种被广泛使用过的Web程序框架。

这是Struts2的内部结构。。

图上展现出的Struts结构可以看出,请求经过基础过滤器组件StrutsPrepareAndExecuteFilter组件和N多Interceptor拦截器组件对请求进行过滤和拦截,由Struts.xml配置文件确定是否有对应请求的Action与其相应,Interceptor拦截器组件多用于处理编码,请求参数在action中初始化。而action组件实现的是Http请求。

Struts框架提供了下列元素:
• 基础过滤器
• 基类
• 配置文件和注解类


下图是Struts对请求的处理的活动图:




表示三条线路:

1.请求对应的Action没有表单的提交,直接在Action中重写基类的execute(),将调度请求转发到指定页面。

2.请求对应的Action有表单的提交,这时会由Interceptor拦截器来进行对Action重的属性进行初始化,然后重写基类的validate方法来进行表单验证,若表单验证通过,则执行execute()来站发到指定页面。

3.请求对应的Action有表单的提交,这时会由Interceptor拦截器来进行对Action重的属性进行初始化,然后重写基类的validate方法来进行表单验证,找不到对应的action然后最后跳转到错误页面。


关于Struts的Action组件开发:

1. 导入Struts2框架依赖jar包。
2. 配置核心过滤器组件  ***Filter。
3. 编写****Action组件。

a.继承ActionSupport类
b.声明对应于表单页面的字段,并为字段提供相应的get/set方法
c.可选地,覆盖validate方法,在方法中提供表单字段验证逻辑
d.覆盖execute方法,在方法中提供控制逻辑
逻辑视图
INPUT
SUCCESS
4. 配置Struts.xml文件

<struts>
<package name="admin" namespace="/admin" extends="struts-default">
<action name="AddLeague" 
class="com.oracle.soccerleague.action.AddLeagueAction">
<result name="success">/admin/AddLeagueSucc.jsp</result>
<result name="input">/admin/AddLeague.jsp</result>
</action>
</package>
</struts>


Struts的Filter组件配置:

在web.xml部署描述符中进行如下配置:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
……
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Struts2缺省支持UTF-8字符集,可以直接支持中文的处理


1. Struts Action组件在MVC模式中充当什么角色?
Controller 控制器的角色

2. 编写Struts Action组件,需要继承哪个类?对表单的验证逻辑应写在哪个方法中?
需要继承ActionSupport类, 逻辑验证应写在validate

3. 描述execute()方法中通常所需编写的逻辑。其返回值的含义是什么?
此方法需要返回一个ActionForward对象

ActionSupport基类中定义了五个标准的返回值 ,当然我们可以自己随意定义返回的名字
1.ERROR表示动作出错了
2.SUCCESS表示动作执行成功
3.LOGIN表示需要先登录才能执行动作
4.INPUT表示需要先输入数据才能执行动作
5.NONE表示动作类执行成功

 






   1. struts是一个按MVC模式设计的Web层框架,其实它就是一个大大的servlet,这个Servlet名为ActionServlet,或是ActionServlet的子类。我们可以在web.xml文件中将符合某种特征的所有请求交给这个Servlet处理,这个Servlet再参照一个配置文件(通常为/WEB-INF/struts-config.xml)将各个请求分别分配给不同的action去处理。    一个扩展知识点:struts的配置文件可以有多个,可以按模块配置各自的配置文件,这样可以防止配置文件的过度膨胀;    2. ActionServlet把请求交给action去处理之前,会将请求参数封装成一个formbean对象(就是一个java类,这个类中的每个属性对应一个请求参数),封装成一个什么样的formbean对象呢?看配置文件。    3.要说明的是, ActionServlet把formbean对象传递给action的execute方法之前,可能会调用formbean的validate方法进行校验,只有校验通过后才将这个formbean对象传递给action的execute方法,否则,它将返回一个错误页面,这个错误页面由input属性指定,(看配置文件)作者为什么将这里命名为input属性,而不是error属性,我们后面结合实际的运行效果进行分析。    4.action执行完后要返回显示的结果视图,这个结果视图是用一个ActionForward对象来表示的,actionforward对象通过struts-config.xml配置文件中的配置关联到某个jsp页面,因为程序中使用的是在struts-config.xml配置文件为jsp页面设置的逻辑名,这样可以实现action程序代码与返回的jsp页面名称的解耦。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值