手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>Java技术>列表

Struts用户手册翻译(1)

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

Struts的控制器Servlet查询ActionMapping,将HTTP请求转到其他组件去。请求可能被转到JSP或者开发者编写的Action[org.apache.struts.action.Action]的子类去。这些Mapping使控制器能将HTTP请求转到应用相关的Action去。

一个ActionMapping通常由以下一些属性:

  • 一个请求路径(或者“URI”)
  • 执行这个请求的对象类型(Action的子类)
  • 其他需要的属性

Action的对象可以处理请求并向用户(通常是浏览器)作出反应,或者将控制转到其他地方去。例如,如果用户登录成功,login的action将会把请求转到主菜单的页面上去。

Action对象可以访问应用的控制器Servlet和它的方法。当将控制转移时,Action对象可以间接的将一个或多个共享的对象同时转移,包括JavaBean,这只要将他们放在一个Servlet共享的标准context中即可。

例如,Action对象可以建立一个购物车的bean,并增加商品到这个购物车中,然后将这个bean放到会话中,最后将控制转移到显示购物车里面的内容的JSP页面。因为每个用户都有自己的会话,所以他们都有自己的购物车。

在一个Struts应用中,绝大部分的逻辑可以使用JavaBean来编写。一个Action可以在不知道JavaBean怎样工作的情况下,调用JavaBean的属性。这就封装了逻辑,使得Action可以把精力集中在错误处理和流程控制上去。

JavaBean也可以用来管理输入的表单。网页应用的一个关键问题就是得到并校验用户的录入信息。使用Struts,你可以通过继承ActionForm定义自己的输入Bean类。ActionForm类使得存储和校验应用中的输入表单变得很容易。ActionForm的bean可以被自动的按照同一种标准和共享的上下文来存储,这样它就可以被其他对象,例如Action对象或者其他JSP访问。

Form bean可以被JSP用来收集用户录入的数据,一个Action对象来校验这些数据,然后再用JSP重现这个form的内容。在校验错误时,Struts使用一种共享的机制来抛出和显示错误信息。

Struts配置的另外一个元素是ActionFormBean。这是一个描述对象的集合,被用来在运行时建立ActionForm的实例。当一个mapping需要一个ActionForm时,servlet使用名字寻找这些描述对象并使用它去建立一个指定类型的ActionForm的实例。

这是使用ActionForm的请求的一个事件顺序:

  • 控制器servlet得到或者建立ActionForm bean的实例
  • 控制器servlet将这个bean送到Action对象
  • 如果请求是提交数据,则Action对象校验数据。必要时,数据可以和一些信息被送回到录入表单并显示在页面上。否则,数据将会被传送到逻辑中去。
  • 如果请求是建立一个输入页面,Action对象则将输入页面需要的数据填入bean中。

Struts框架包括了可以自动填充JavaBean域的自定义标记。JSP需要知道的只是域的名字和将表单提交到哪里去。其他Struts标记能将Action或者ActionForm的信息自动的显示出来,这只需要与页面标记简单的结合。这些信息是多语言的并能根据用户所在的地区自动的选择合适的语言。

Struts框架和它的自定义标记库是在Java平台下结合起来支持多语言功能的。所有的域名称和信息可以从一个消息资源中得到。需要对其他语言进行支持,只需要简单的增加一个资源绑定即可。

除了多语言化,另外一个消息资源的好处就是保持了表单名字的一致性。并且可以在一个地方就能修改所有标签和信息文字。

对于最简单的应用,Action对象通常就包括了请求所需要的逻辑。然而,在很多情况下,Action对象应该调用另外一个对象(通常是JavaBean)去执行逻辑。这使得Action只集中处理错误和控制流程,而不用管具体的逻辑流程。为了能在另外的平台上重用,逻辑JavaBean不应该调用任何网页应用的对象。Action对象应该从HTTP请求中将需要的信息翻译出来并通过标准的Java变量传送到逻辑bean中去。

例如,对于一个数据库应用:

  • 逻辑bean连接并查询数据库
  • 逻辑bean把结果返回到Action对象
  • Action对象把结果存在请求的form bean中
  • JSP在HTML中显示这些数据

无论是Action或者JSP都不需要知道这些数据是从哪里来的,它们只需要知道怎样包装和显示他们。

上一篇: 取代JSP的新技术-tapestry
下一篇: JSP漏洞大观(一)

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!