全部博文(2065)
分类: Java
2008-12-05 18:24:48
struts-config.xml
文件配置控制器。
Action
类完成的。
ActionForm
维护 Web
应用程序的会话状态。
ActionForm
是一个抽象类,必须为每个输入表单模型创建该类的子类。当我说
输入表单模型 时,是指
ActionForm
表示的是由 HTML
表单设置或更新的一般意义上的数据。例如,您可能有一个由 HTML
表单设置的
UserActionForm
。Struts
框架将执行以下操作:
UserActionForm
是否存在;如果不存在,它将创建该类的一个实例。
UserActionForm
的状态。没有太多讨厌的
request.getParameter()
调用。例如,Struts
框架将从请求流中提取
fname
,并调用
UserActionForm.setFname()
。
UserActionForm
传递给业务包装
UserAction
之前将更新它的状态。
Action
类之前,Struts 还会对
UserActionForm
调用
validation()
方法进行表单状态验证。
注: 这并不总是明智之举。别的网页或业务可能使用
UserActionForm
,在这些地方,验证可能有所不同。在
UserAction
类中进行状态验证可能更好。
UserActionForm
。
Action
类是业务逻辑的一个包装。
Action
类的用途是将
HttpServletRequest
转换为业务逻辑。要使用
Action
,请创建它的子类并覆盖
process()
方法。
ActionServlet
(Command) 使用
perform()
方法将参数化的类传递给
ActionForm
。仍然没有太多讨厌的
request.getParameter()
调用。当事件进展到这一步时,输入表单数据(或 HTML
表单数据)已被从请求流中提取出来并转移到
ActionForm
类中。
注:扩展
Action
类时请注意简洁。
Action
类应该控制应用程序的流程,而不应该控制应用程序的逻辑。通过将业务逻辑放在单独的包或
EJB 中,我们就可以提供更大的灵活性和可重用性。
考虑
Action
类的另一种方式是 Adapter
设计模式。
Action
的用途是“将类的接口转换为客户机所需的另一个接口。Adapter
使类能够协同工作,如果没有
Adapter,则这些类会因为不兼容的接口而无法协同工作。”(摘自 Gof
所著的
Design Patterns - Elements of Reusable OO
Software )。本例中的客户机是
ActionServlet
,它对我们的具体业务类接口一无所知。因此,Struts
提供了它能够理解的一个业务接口,即
Action
。通过扩展
Action
,我们使得我们的业务接口与 Struts
业务接口保持兼容。(一个有趣的发现是,
Action
是类而不是接口)。
Action
开始为一个接口,后来却变成了一个类。真是金无足赤。)
第一个struct2.0实例:
<%@ taglib prefix="s" uri="/struts-tags" %>
其中这样写的话是为了得到一个前缀哦!
那后面是可以这样来引用 了
Name:
加一个前缀表示prefix!
提交到一个Action了哦
通过一个配置文件可以将这个action映射到一个JSP文件了
通过一个JAVA文件来作映射的哦!
可以直接映射到这个JSP文件了!
2.来进行单元测试
单元测试好好玩的哦哈哈!
为某一个类中的一个方法进行单元测试,运行的时候是运行为单元 测试!
上面的例子简单地演示了,Web 应用程序的基本操作,也即是,页面输入->Action处理->再输出到另外页面
处理逻辑是集中到了一个Action了!
中间就是通过一个Action处理了!