⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 introduction.html

📁 Struts中文文档
💻 HTML
📖 第 1 页 / 共 2 页
字号:
        <p>
		Action对象可以创建一个购物车Bean,在购物车里面加上一个条目,把这个bean放到session 结构里去,然后把控制转发到另一个映射。那个映射会使用一个JavaServer Page来显示用户的购物车里的内容。因为每个用户都有他自己的session,他们也会有自己的购物车。在一个Struts程序里,大部分商业逻辑都可以由JavaBeans表示。一个Action可以调用一个JavaBean的属性,不需要知道她实际上是如何工作的。这封装了 商业逻辑,所以Action可以专注于错误处理和如何转发控制。
</p>
        
        <p>
		JavaBeans也可以用来管理输入的Forms.设计一个web程序的主要问题是得到并检查用户在请求中的输入。通过Struts,你可以 定义你自己的Form Bean 类集合,他们都是<code>org.apache.struts.action.ActionForm</code>的子类,并很容易的把用户form(这里是指HTTP form--译者注)输入的内容放到这些Form bean里去。这个bean被存放到一个标准的共享上下文集合里去,所以另一个对象可以使用它,特别是指一个Action对象。

(我的理解,使用ActionForm是因为这样可以标准化的检查Form里的值,也可以标准化的调用Action--译者注。)
		
        </p>
        
        <p>
		Form bean可以被一个JSP使用来从用户收集数据...通过一个Action 对象来检查用户输入的数据...然后再通过JSP来重新显示form的字段。如果检查错误,Struts由一个公用的机制来提交和显示错误信息。
        </p>
        
        <p>
		Struts 的Form bean在配置文件中声明,在一个Java文件中被定义,并且通过一个通用的属性名字来连接到一个ActionMapping去。当一个请求 调用一个需要FormBean 的Action时候,Controller servlet要么从输入中获取form bean,要么自己构造一个form bean,把它传递到Action对象去。Action 对象可以在显示之前检查form bean的内容,也可以为要在form里显示的内容排队。准备好之后,Action对象返回控制权并转移到它的输入叶面去。controller就可以响应HTTP请求,并重定向到JavaServer Page去。
        </p>
        
        <p>
		Struts 框架包括自定义的Tag来自动从一个formBean填充子段。JavaServer Page唯一需要知道的是确切的字段名和下一步提交form到何处。一些部件例如被Action排队的消息可以在一个自定义tag就被输 出。也可以定制其他为程序定制的tag来从jsp中隐藏实现细节。
        </p>
        
        <p>
		在Struts框架中的自定义tag被设计为使用Java平台内置的国际化特性。所有的字段名和消息都可以从消息资源中获取,并且Java可以自动为一个客户端的国家和语言提供想对应的资源。为了提供另一种语言的支持,只需简单的的增加另一个资源文件。
        </p>
        
        <p>
		除了国际化之外,这个进步的好处还在于在不同的form中保持一样的标签名字,也可以全局化的复查所有的标签和消息。
        </p>
        
        <p>
		对于最简单的程序来说,有时候一个Action对象可以处理一个请求对应的商业逻辑。<b>但是,在大多数情况下,一个Action对 象应该调用另一个对象,一般是一个JavaBean来处理实际的业务逻辑。</b>这让Action专注于错误处理和流程控制,而非商业逻 辑。为了在其他平台上重用,商业逻辑JavaBean不应该引用任何web程序的对象。Action对象应该从HTTP请求翻译必要的细节并 象普通的java变量一样传递到商业逻辑对象去。
        </p>
          
        <p>
		举个例子,在一个数据库程序中:
        </p>

        <ul>
         <li>一个商业逻辑bean会连接到数据库并进行查询,</li>
         <li>商业逻辑bean把结果传递到Action,</li>
         <li>Action把结果保存在一个form bean中,放置到request中去,</li>
         <li>JavaServer Page把结果显示到一个HTML Form中去。</li>
         </ul>

         <p>不管是Action还是JSP都不需要知道结果是从哪儿来的。他们只需要知道如何打包和显示结果。
         </p>
        
        <p>
		用户指南的其它部分非常详细的解释了Struts的不同部件。Struts发布版本也包含了一些开发者手册包含几个不同的主题,也包括例子程序,标准的Javadoc API,当然还有全部的源代码!
         </p>
         
         <p>
		 Struts 在Apache软件基金会协议下发布。代码拥有版权,但是可以在任何程序中自由的使用。参阅<a href="http://www.apache.org/LICENSE-1.1">ASF license</a> 得到详细信息. 
         </p>
          
    </blockquote></td></tr></table><a name="modelConcepts"></a><table width="100%" cellpadding="5" cellspacing="5" border="0"><tr><td bgcolor="#023264"><font size="+1" face="arial,helvetica,sanserif" color="#ffffff"><strong>1.4 Model(模型): 系统状态和商业逻辑JavaBeans</strong></font></td></tr><tr><td><blockquote>
      
      <p>
	  基于MVC的系统中的<i>Model(模型)</i>部分可以被分为两个概念,系统的内部状态和可以用来改变状态的动作。从语法上来说 ,我们可以把状态信息看成是<i>名词</i>,而动作是<i>动词</i>(用来改变状态)。
      </p>
        
      <p>
	  一般来说,米的程序需要用一套包含一个或多个JavaBeans来表达内部状态,(这些)JavaBean包含了这个状态的详细属性。根据 你的程序的复杂程度,他们可能是自我包含的(自己知道怎么样保留持续化信息),或者仅是一个知道必要时如何从外部数据源(如数据库)获取信息的对象。Entity Enterprise JavaBeans (Entity EJBs)一般也用于表示内部状态。
      </p>
        
      <p>
	  大型程序经常使用一些bean的方法来表示一组可能的商业逻辑,这些方法维护状态信息。例如,你可能有一个购物车Bean,保存 在每个用户的session中,包含用户当前决定购买的条目。这个bean可能有一个<code>checkOut()</code>方法来取得用户信用卡 的授权,发送订单到仓库去来发送。另一些系统可能把可能的动作单独包装,可能是一个Session Enterprise JavaBeans(Session EJBs).
      </p>
        
      <p>
	  在一些较小的程序中,相反,可能的动作会内置于<code>Action</code>类中,是Controller角色的一部分。当逻辑非常简单的 时候,或者当重用商业逻辑不是关注点的时候这是合适的。Struts框架支持任何一种模式,但是<b>强烈</b>建议把商业逻辑 (如何做)从<code>Action</code>类扮演的角色(做什么)中分开。
      </p>
    </blockquote></td></tr></table><a name="presentationConcepts"></a><table width="100%" cellpadding="5" cellspacing="5" border="0"><tr><td bgcolor="#023264"><font size="+1" face="arial,helvetica,sanserif" color="#ffffff"><strong>1.5 View(视图): JSP页面和表示部件</strong></font></td></tr><tr><td><blockquote>
      
      <p>
	  基于Struts程序的<i>View</i>部分基本上是由JavaServer pages(JSP)技术构成的。JSP页面可以包含静态的HTML(或者XML)文本,被称为“模版文本”,再加上在特殊的标签运行时(当页面被调用的时候)插入动态内容的能力。JSP环境包含一套标准的动作标签,比如<code>&lt;jsp:useBean&gt;</code>他们的 用处在<a href="http://java.sun.com/products/jsp/download.html">JavaServer Pages Specification</a>描述了。另外,还有一种标准的方法来定义你自己的标签,他们被组织在“自定义标签库”里。
      </p>
          
      <p>
	  Struts包含了一个内容广泛的自定义标签库,用以帮助编写完全国际化的用户界面。它也和处于<i>Model</i>部分的<code>ActionForm</code>高度互动。关于使用这些标签的方法在后面会详细讨论。
      </p>
          
      <p>
	  除了JSP 页面和原有的以及自定义的标签之外,有时候让商业逻辑对象拥有把他们自己根据当前的状态渲染成HTML(或者XML)的能力也 是经常需要的。这些被渲染出来的输出可以很容易的在一个结果JSP文件里面用<code>&lt;jsp:include&gt;</code>标准动作标 签引用。
      </p>
    </blockquote></td></tr></table><a name="controllerConcepts"></a><table width="100%" cellpadding="5" cellspacing="5" border="0"><tr><td bgcolor="#023264"><font size="+1" face="arial,helvetica,sanserif" color="#ffffff"><strong>1.6 Controller(控制器): ActionServlet 和 ActionMapping</strong></font></td></tr><tr><td><blockquote>
      
      <p>
	  程序的<i>Controller(控制器)</i>部分关注于从客户端接收请求(通常是一个使用浏览器的用户),决定那个商业逻辑方法应该被执行,然后分配任务给到一个合适的view组件来制造下一步的用户界面。在Struts里面,Controller的主要部分是一个servlet,它是<code>ActionServlet</code>.这个servlet用一组<code>ActionMappings</code>来配置,一个ActionMapping定义了一个<code>path(路径)</code>,它和用户请求的URI对应,一般会指定一个完整的Action类的类名。所有的Action类都是<code>org.apache.struts.action.Action</code>的子类。Action封装了商业逻辑,组装结果,并且最终分配控制权到合适的View部件来创建结果。
      </p>
        
      <p>
      Struts也支持在<code>ActionMapping</code>中使用除了标准的框架所需之外附加的属性。这样允许你保存你的程序所特定的附加信息。除此之外,Struts还允许你定义控制转移的逻辑“名字”,这样一个Action方法可以要求“主菜单”(举例)而不需要知道对应的JSP页面的实际名字。这个功能很大的帮助你把控制逻辑(做什么)和表示逻辑(如何显示)分开。
      </p>
      
      <p align="center">
        下一章: <a href="building_model.html">构造Model(模型)部件</a>
      </p>
      </blockquote></td></tr></table>
    </body></td></tr><tr><td colspan="2"><hr></td></tr><tr><td colspan="2"><div align="center"><font size="-1" color="#023264"><em>
        Copyright (c) 2000-2002, Apache Software Foundation
        </em></font></div><img border="0" align="right" src="../images/struts-power.gif"></td></tr></table></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -