Struts1 用户指南翻译

问题描述

原文:1.Introduction"Readthedirectionsanddirectlyyouwillbedirectedintherightdirection."TheframeworkdocumentationiswrittenforactivewebdevelopersandassumesaworkingknowledgeabouthowJavawebapplicationsarebuilt.Formoreabouttheunderlyingnutsandbolts,seetheKeyTechnologiesPrimer.1.1ForwardintothePast!(orabriefhistoryofStruts)WhenJavaservletswerefirstinvented,manyprogrammersquicklyrealizedthattheywereaGoodThing.TheywerefasterandmorepowerfulthatstandardCGI,portable,andinfinitelyextensible.ButwritingHTMLtosendtothebrowserinendlessprintln()statementswastiresomeandproblematic.TheanswertothatwasJavaServerPages,whichturnedServletwritinginside-out.NowdeveloperscouldeasilymixHTMLwithJavacode,andhavealltheadvantagesofservlets.Theskywasthelimit!Javawebapplicationsquicklybecame"JSP-centric".Thisin-and-ofitselfwasnotaBadThing,butitdidlittletoresolveflowcontrolissuesandotherproblemsendemictowebapplications.Clearly,anotherparadigmwasneeded...ManycleverdevelopersrealizedthatJavaServerPagesANDservletscouldbeusedtogethertodeploywebapplications.Theservletscouldhelpwiththecontrol-flow,andtheJSPscouldfocusonthenastybusinessofwritingHTML.Induecourse,usingJSPsandservletstogetherbecameknownasModel2(meaning,presumably,thatusingJSPsalonewasModel1).Ofcourse,thereisnothingnewundertheSun...andmanyhavebeenquicktopointoutthatJSP'sModel2followstheclassicModel-View-ControllerdesignpatternabstractedfromthevenerableSmalltalkMVCframework.JavaWebdevelopersnowtendtousethetermsModel2andMVCinterchangeably.Inthisguide,weusetheMVCparadigmtodescribetheframeworkarchitecture,whichmightbebesttermedaModel2/MVCdesign.TheApacheStrutsProjectwaslaunchedinMay2000byCraigR.McClanahantoprovideastandardMVCframeworktotheJavacommunity.InJuly2001,version1.0wasreleased,andIOHO,JavaModel2developmenthasneverbeenquitethesame.1.2TheModel-View-Controller('MVC')DesignPatternTheterm"MVC"originatedwiththeSmallTalkModel-View-Controllerframework.UnderMVC,anapplicationisseenashavingthreedistinctparts.TheproblemdomainisrepresentedbytheModel.TheoutputtotheuserisrepresentedbytheView.And,theinputfromtheuserisrepresentedbyController.1.2.1TheModel:SystemStateandBusinessLogicJavaBeansTheModelportionofanMVC-basedsystemcanbeoftenbedividedintotwomajorsubsystems--theinternalstateofthesystemandtheactionsthatcanbetakentochangethatstate.Ingrammaticalterms,wemightthinkaboutstateinformationasnouns(things)andactionsasverbs(changestothestateofthosethings).ManyapplicationsrepresenttheinternalstateofthesystemasasetofoneormoreJavaBeans.Thebeanpropertiesrepresentthedetailsofthesystem'state.Dependingonyourapplication'scomplexity,thesebeansmaybeselfcontained(andknowhowtopersisttheirownstate),ortheymaybefacadesthatknowhowtoretrievethesystem'sstatefromanothercomponent.Thiscomponentmaybeadatabase,asearchengine,anEntityEnterpriseJavaBean,aLDAPserver,orsomethingelseentirely.Large-scaleapplicationswilloftenrepresentthesetofpossiblebusinessoperationsasmethodsthatcanbecalledonthebeanorbeansmaintainingthestateinformation.Forexample,youmighthaveashoppingcartbean,storedinsessionscopeforeachcurrentuser,withpropertiesthatrepresentthecurrentsetofitemsthattheuserhasdecidedtopurchase.ThisbeanmightalsohaveacheckOut()methodthatauthorizestheuser'screditcardandsendstheordertothewarehousetobepickedandshipped.Othersystemswillrepresenttheavailableoperationsseparately,perhapsasSessionEnterpriseJavaBeans(SessionEJBs).Inasmallerscaleapplication,ontheotherhand,theavailableoperationsmightbeembeddedwithintheActionclassesthatarepartoftheframeworkcontrollayer.Thiscanbeusefulwhenthelogicisverysimpleorwherereuseofthebusinesslogicinotherenvironmentsisnotcontemplated.TheframeworkarchitectureisflexibleenoughtosupportmostanyapproachtoaccessingtheModel,butwestronglyrecommendthatyouseparatethebusinesslogic("howit'sdone")fromtherolethatActionclassesplay("whattodo").'nuffsaid.Formoreaboutadaptingyourapplication'sModeltotheframework,seetheBuildingModelComponentschapter.1.2.2TheView:JSPPagesandPresentationComponentsTheViewportionofaStruts-basedapplicationismostoftenconstructedusingJavaServerPages(JSP)technology.JSPpagescancontainstaticHTML(orXML)textcalled"templatetext",plustheabilitytoinsertdynamiccontentbasedontheinterpretation(atpagerequesttime)ofspecialactiontags.TheJSPenvironmentincludesasetofstandardactiontags,suchas<jsp:useBean>whosepurposeisdescribedintheJavaServerPagesSpecification.Inadditiontothebuilt-inactions,thereisastandardfacilitytodefineyourowntags,whichareorganizedinto"customtaglibraries."TheframeworkincludesasetofcustomtaglibrariesthatfacilitatecreatinguserinterfacesthatarefullyinternationalizedandinteractgracefullywithActionFormbeans.ActionFormscaptureandvalidatewhateverinputisrequiredbytheapplication.FormoreabouttheStrutstaglibsandusingpresentationpageswiththeframework,seetheBuildingViewComponentssection.AdditionaldocumentationregardingthetaglibsisalsoavailableintheTaglibssubproject.1.2.3TheController:ActionServletandActionMappingStrutsprovidestheControllerportionoftheapplication.TheControllerisfocusedonreceivingrequestsfromtheclient(typicallyauserrunningawebbrowser),decidingwhatbusinesslogicfunctionistobeperformed,andthendelegatingresponsibilityforproducingthenextphaseoftheuserinterfacetoanappropriateViewcomponent.TheprimarycomponentoftheControllerintheframeworkisaservletofclassActionServlet.ThisservletisconfiguredbydefiningasetofActionMappings.AnActionMappingdefinesapaththatismatchedagainsttherequestURIoftheincomingrequestandusuallyspecifiesthefullyqualifiedclassnameofanActionclass.AllActionsaresubclassedfrom[org.apache.struts.action.Action].Actionsencapsulatecallstobusinesslogicclasses,interprettheoutcome,andultimatelydispatchcontroltotheappropriateViewcomponenttocreatetheresponse.WhiletheframeworkdispatchestoaView,actuallyrenderingtheViewisoutsideitsscope.译文:1.导言“按照说明书,你就可以直接获得正确的方向定位”构架文档是为现行的web开发者和呈现javaweb应用程序是怎么样创建的应用知识而写的。想了解更多的具体细节,请参看KeyTechnologiesPrimer.1.1Struts简要历史当Javaservlets第一次被发明时,许多程序师很快就认识到Javaservlets是个好东西。它们由于使用标准的CGI,轻便,且可以无限扩展而运行速度快和功能强大。而在无止境的println()声明中写HTML来发送到浏览器是烦人的和问题百出的。答案是JavajServerPages彻底地写在Servlet中。现在开发者可以容易地将HTML和Java代码混合在一起,并拥用servlets的所有优势。天空是多少的有限!Javaweb应用程序迅速地成为“JSP-核心”.这并不是一件坏事,但它很少处理流控制问题和web应用程序的另一些特有问题。明显地,需要一些范例…很多聪明的开发者都意识到JavaServerPages和servlets可以结合使用来显示web应用程序。Servlets有助于流控制,而JSPS则将焦点放在令人厌恶的HTML业务书写上。众所周知,Model2中适当地将JSPS和servlets结合使用。(意思是推测起来,在Model1中单独使用JSPS)当然,Sun并没有添加新的东西…JSPSModel2遵循典型的古老的MVC框别架的MVC设计模型的很多特点很快被指出来。JavaWeb开发者试图使用Model2术语和可替交的MVC。在这种引导下,我们使用MVC范例去描述体系机构的框架是最好的Model2/MVC设计条件。CraigR.McClanahan在2000年5月发起ApacheStruts项目,并为Java社区提供标准的MVC框架。2001年7月发布1.0版本,IOHO,JavaModel2的发展不尽一样。1.2模型-视图-控制器设计模型“MVC“是SmallTalk模型-视图-控制器框架的缩略术语。在MVC下,明显地看出一个程序有三个部分。问题域由模型控制器来描述。输出给用户由视图控制器来描述。而用户输入则由控制器来描述。1.2.1模型:系统状态和JavaBeans业务逻辑基于MVC系统的Model部分通常可以分为两个主要的子系统—内部状态系统和用于改变状态的actions动作。在合乎文法的协商中,我们可以想象状态信息就像事件和动作(改变事件的状态)许多应用程序表现为类似于一系列JavaBeans的内部系统状态。Bean特性表现为系统详细资料的状态。决定于应用程序的复杂性,这些beans或许自包含(且知道怎么样维持他们自己的状态)且它们可以知道怎么样从另一个组件中重新获取系统状态。这些组件可能是一个数据库库,一个搜索引擎,一个企业级实体JavaBean,一个LDAP服务器,或是其它东西。大规模的应用程序通常将表现为一系列可能性的方法业务,它为bean和beans维持信息状态将义不容辞。例如,你或许有一个购物车bean,在session作用范围中为每一个当前用户存储购物车bean,它的特性表现为当前用户决定购买的一系列条目清单。这些bean总有一个checkOut()方法,这方法批准用户信用卡和发送命令到仓库去取货和载运。另一些系统则表现为有用的分离操作,或许像Session企业级JavaBeans.在小规模的应用程序中,另一方面,有用的操作可以作为框架中控制层的一部分而植入Action类中。当逻辑很简单或在另一些不可预期的环境中重新使用业务逻辑的地方变得非常有用。框架体系机构能弹性地支持大多数类似于模型的访问,但是我们强烈地推荐将业务逻辑(怎么做)从Action类的角色中分离出来。Nuff说。了解更多关于让你的应用程序模型配合框架,请参看BuildingModelComponents章节视图:JSP页和组件介绍1.2.2TheView:JSPPagesandPresentationComponents基于Struts的视图部分应用程序大部分是用JSP技术来构建的。JSP页能包含被称为模板的静态HTML(或XML),加上基于专用的解释(在页面请求时)型动作标签的插入动态内容的能力。JSP环境包含一系列标准的动作标签,例如<jsp:useBean>目的是描述JSP规范。除了内置的actions,有个标准的工具用于定义你的标签,这些存放在“自定义标签库”中。框架包含一系列自定义标签库,它使完全国际化的和ActionFormbeans相结合的用户界面更容易产生。ActionForms随时捕获并确认应用程序的输入请求。想了解更多Strutstaglibs和使用介绍框架事件,请参看BuildingViewComponents部分。附加的文档taglibs通常在子项目的Taglibs也可用到1.2.3控制器:ActionServlet和ActionMappingStruts充当应用程序的控制器部分。控制器的焦点集中在获取从客户端发送来的请求(典型地一个用户运行web浏览器),决定完成什么样的业务逻辑功能,一个适当的视图组件代表责任是产生下一个用户状态接口。框架中的控制器的主要组件是一个servlet类ActionServlet.这些servlet被定义一系列ActionMapping来配置。一个ActionMapping定义一个路径,输入请求的URL和通常的Action类的特性相匹配.所有的Actions都是[org.apache.struts.action.Action]的子类。Actions调用业务逻辑类,解释结果,最后分派控制适当的视图组件来产生响应。当框架派遣一个视图,实际上这个视图表现出超出了它的范围。----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------我现在正在翻译Struts1,请大家多帮忙!请大家帮我指正我的译文错误

时间: 2024-10-18 17:52:45

Struts1 用户指南翻译的相关文章

《Jersey用户指南》翻译邀请

7月并发网组织大家翻译<Jersey用户指南>.有兴趣的同学可以通过评论领取,翻译完成之后再并发网直接提交审核. 一次领取一篇,一篇建议领取一个章节,翻译完成之后可以继续领取,领取文章后最好在一个星期内翻译完成,如果不能完成翻译请通过评论告知,以便于其他人可以继续翻译. Table of Contents Preface 1. Getting Started 1.1. Creating a New Project from Maven Archetype 1.2. Exploring the

HDFS用户指南(翻译)

HDFS用户指南 原文地址:http://hadoop.apache.org/core/docs/current/hdfs_user_guide.html 译者:dennis zhuang(killme2008@gmail.com),有错误请指正,多谢. 目的 本文档可以作为使用Hadoop分布式文件系统用户的起点,无论是将HDFS应用在一个Hadoop集群中还是作为一个单独的分布式文件系统使用.HDFS被设计成可以马上在许多环境中工作起来,那么一些HDFS的运行知识肯定能大大地帮助你对一个集群

PHP用户指南-cookies部分

PHP用户指南-cookies部分 在这课教程我们将学习怎样利用 PHP 处理cookies,我将试着使事情尽可能简单地去解释cookies的一些实际应用. 什么是cookies及作用?  cookies是由web服务器产生的并且存在客户端的一些信息.它嵌在html信息中,由服务器端指定,在客户端及服务器端间传递信息 .它通常用来:用户网页个性化,计数器,储存被浏览站点的信息等. cookies和php 在 PHP中用cookies是相当容易的.可以使用setcookie函数设置一个cookie

Google 站长指南(翻译)

原文地址: http://www.ljf.cn/ReadArticle.asp?id=172题起: 近来SEO越来越热,自觉不自觉地听到了一些消息,突然想到google对这方面的行为应该早有准备,于是想查查官方的文档到底是怎么说的,哪知中文版还没有出来,于是找到英文版,遂起了翻译之念,用了半个上午的时间译得一篇,发表以此,以飨同道.英文来源: http://www.google.com/webmasters/guidelines.html站长指南 (翻译)遵循这些指南能帮助google查找.索引

《Apache Velocity用户指南》官方文档

Quick Start 本项目是 Apache Velocity官方文档的中文翻译版,Velocity类似与JSP,是一种基于Java的模板引擎.它可以在web页面中引用Java代码中定义的数据和对象,而Velocity的作用就是把Web视图和java代码进行组装在一起.本次翻译主要针对对Velocity感兴趣和工作中使用到Velocity的开发人员提供有价值的中文资料,希望能够对大家的工作和学习有所帮助. 由于我也是第一次接触Velocity,还不是很深入,翻译的时候也查看了一些博客以及其他网

Java 并发工具包 java.util.concurrent 用户指南

译序 本指南根据 Jakob Jenkov 最新博客翻译,请随时关注博客更新:http://tutorials.jenkov.com/java-util-concurrent/index.html. 本指南已做成中英文对照阅读版的 pdf 文档,有兴趣的朋友可以去 Java并发工具包java.util.concurrent用户指南中英文对照阅读版.pdf[带书签] 进行下载. 1. java.util.concurrent - Java 并发工具包 Java 5 添加了一个新的包到 Java 平

PHP用户指南-cookies部分_php基础

PHP用户指南-cookies部分 在这课教程我们将学习怎样利用 PHP 处理cookies,我将试着使事情尽可能简单地去解释cookies的一些实际应用. 什么是cookies及作用?  cookies是由web服务器产生的并且存在客户端的一些信息.它嵌在html信息中,由服务器端指定,在客户端及服务器端间传递信息 .它通常用来:用户网页个性化,计数器,储存被浏览站点的信息等. cookies和php 在 PHP中用cookies是相当容易的.可以使用setcookie函数设置一个cookie

《UML用户指南(第2版.修订版)》目录—导读

版权声明UML用户指南(第2版.修订版)Authorized translation from the English language edition, entitled The Unified Modeling Language User Guide, Second Edition, 0321267974 by Grady Booch, James Rumbaugh, and Ivar Jacobson, published by Pearson Education, Inc., publi

AUR用户指南

==用途简介== AUR的全称是"ArchLinux User-community Repository",即ArchLinux社区用户的软件仓库.它是依靠社区贡献软件包.这个文档告诉普通用户们如何使用AUR. ==AUR与用户== AUR中的软件是社区用户提供的,它们没有技术支持,也不保证其安全性(除非它们被TU标记上安全标志).AUR软件包不一定会被一直维护也不一定会被及时更新.AUR完全依赖用户贡献,你可以以许多形式为AUR做贡献. ===在UNSUPPORTED中共享你的PKG