通过Struts实现计算器来学习ActionFrom和Action.
在上一篇文章中已经对Struts的整体流程有一个基本了解,接下来的小例子是通过实现一个简易计算器来进一步了解Struts.
简单需求如下:
能够输入两个值,运算符.
计算成功后将成功的信息显示在页面上
Action完成计算
ActionFrom传数据
三个页面
重新配环境
1拷贝lib下所有的jar类
2配置ActionServlet在web.xml中
3配置Struts核心配置文件struts-config.xml
建立三个页面显示.
input.jsp
success.jsperror.jsp
分析Action
CalActionFrom(提供相关的属性和方法),继承Struts的ActionForm
警告出现的ID表示序列号的错误.(一个容器里不会出现这个问题,但是分布式,或者夸JVM则会出现这中问题.)生成的Set后面的值要和表单里面的值一致
CalAction继承Action重写Execute方法
获取相关的数值.
进行分发处理;
进行异常处理
成功时候转到一个页面(forward对象);失败时候转到一个失败页面.
将计算的结果设置到request中.
获取相关数据结果在页面中
成功:
success.jsp
失败
error.jsp
配置流程
配置ActionForm <form-beans>
配置Action <action-mapping>
小结:通过以上的例子我们来对两个重要的对象进行总结:ActionFrom和Action.
ActionForm用于封装用户的请求参数,而请求参数是通过JSP页面的表单域传递过来的。因此应保证ActionForm的参数,与表单域的名字相同。可以简单的理解为ActionForm是将页面的信息进行包装然后进行传递.所有的ActionForm都被配置在struts-config.xml文件中,该文件包括了一个form-beans的元素,该元素内定义了所有ActionForm,每个ActionForm对应一个form-bean元素。可以参考上面配置流程中的相关代码.
Action是struts中的一个抽象类,它其实是Struts的核心部分,上面说到的ActionForm进过处理获取的请求和数据,都会到达Action中得到分发。
Action可以进行一些表单数据的检查,这里面的检查一般和页面的检查是不一样的,页面的检查都是客户端的一些数据格式规范的检查,这里的检查而与业务相关的检查一般放到这里面检查,比如与JavaBean相关的一些操作。它会直接调用业务逻辑层的javabean去处理数据库的操作,比如增删改查等。根据处理的结果决定程序的去向,并以ActionForward对象的形式传递给ActionServlet,这样ActionServlet通过配置文件,决定返回的数据到达那个页面。 Action是一个抽象类,必须实现以后才能执行,执行的方法是execute方法。本文中CalAction类便是实现Action类的一个具体类,来进行相关的计算,并将计算结果进行转发.
- 1楼smszhuang168昨天 08:30
- 顶一下,看到写计算器的代码让我想起来咱们当时学习flash的时候也练习写了一个简单的计算器,呵呵
- Re: jnqqls昨天 09:29
- 回复smszhuang168n是呀,这一晃好几年都过去了.