Structs2.0入门学习
来源:优易学  2011-12-9 11:58:19   【优易学:中国教育考试门户网】   资料下载   IT书店
  1.下一个项目开发用structs2.0
  现在开始学习JAVA中的这个技术了!
  Struts 是一组相互协作的类、servlet 和 JSP 标记,它们组成一个可重用的 MVC 2 设计。这个定义表示 Struts 是一个框架,而不是一个库,但 Struts 也包含了丰富的标记库和独立于该框架工作的实用程序类。
  ● Client browser(客户浏览器)
  来自客户浏览器的每个 HTTP 请求创建一个事件。Web 容器将用一个 HTTP 响应作出响应。
  ● Controller(控制器)
  控制器接收来自浏览器的请求,并决定将这个请求发往何处。就 Struts 而言,控制器是以 servlet 实现的一个命令设计模式。 struts-config.xml 文件配置控制器。
  ● 业务逻辑
  业务逻辑更新模型的状态,并帮助控制应用程序的流程。就 Struts 而言,这是通过作为实际业务逻辑“瘦”包装的 Action 类完成的。
  ● Model(模型)的状态
  模型表示应用程序的状态。业务对象更新应用程序的状态。ActionForm bean 在会话级或请求级表示模型的状态,而不是在持久级。JSP 文件使用 JSP 标记读取来自 ActionForm bean 的信息。
  ● View(视图)
  视图就是一个 JSP 文件。其中没有流程逻辑,没有业务逻辑,也没有模型信息 -- 只有标记。标记是使 Struts 有别于其他框架(如 Velocity)的因素之一。
  Struts 的控制器是将事件(事件通常是 HTTP post)映射到类的一个 servlet.正如您所料 —— 控制器使用配置文件以使您不必对这些值进行硬编码。时代变了,但方法依旧。
  ActionForm 类
  ActionForm 维护 Web 应用程序的会话状态。 ActionForm 是一个抽象类,必须为每个输入表单模型创建该类的子类。当我说 输入表单模型 时,是指 ActionForm 表示的是由 HTML 表单设置或更新的一般意义上的数据。例如,您可能有一个由 HTML 表单设置的 UserActionForm .Struts 框架将执行以下操作:
  ● 检查 UserActionForm 是否存在;如果不存在,它将创建该类的一个实例。
  ● Struts 将使用 HttpServletRequest 中相应的域设置 UserActionForm 的状态。没有太多讨厌的request.getParameter() 调用。例如,Struts 框架将从请求流中提取 fname ,并调用 UserActionForm.setFname() 。
  ● Struts 框架在将 UserActionForm 传递给业务包装 UserAction 之前将更新它的状态。
  ● 在将它传递给 Action 类之前,Struts 还会对 UserActionForm 调用 validation() 方法进行表单状态验证。 注:这并不总是明智之举。别的网页或业务可能使用 UserActionForm ,在这些地方,验证可能有所不同。在 UserAction 类中进行状态验证可能更好。
  ● 可在会话级维护 UserActionForm 。
  Action 类
  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" %>
  其中这样写的话是为了得到一个前缀哦!
  那后面是可以这样来引用了
  <s:form action="HelloWorld">
  Name: <s:textfield name="name" />
  <s:submit />
  </s:form>
  加一个前缀表示prefix!
  提交到一个Action了哦
  通过一个配置文件可以将这个action映射到一个JSP文件了
  <struts>
  <include file="struts-default.xml"/>
  <package name="tutorial" extends="struts-default">
  <action name="HelloWorld" class="tutorial.HelloWorld">
  <result>HelloWorld.jsp</result>
  </action>
  </package>
  </struts>
  通过一个JAVA文件来作映射的哦!
  <h3><s:property value="name" /></h3>
  可以直接映射到这个JSP文件了!
  2.来进行单元测试
  为某一个类中的一个方法进行单元测试,运行的时候是运行为单元 测试!
  上面的例子简单地演示了,Web 应用程序的基本操作,也即是,页面输入->Action处理->再输出到另外页面
  处理逻辑是集中到了一个Action了!
  中间就是通过一个Action处理了!

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训