a can struts2出错it which method isnt be 是什么要素 called simple
本文目录导航:
- struts2出错it isn't a simple method which can be called,是什么要素
- 什么是框架技术啊?
- Struts多Action的基类是什么?怎么应用该基类成功多Action操作。
struts2出错it isn't a simple method which can be called,是什么要素
翻译:它不是一个繁难的方法可以被调用。
什么是框架技术啊?
IT语境中的框架,特指为处置一个开明性疑问而设计的具备必定解放性的撑持结构。
在此结构上可以依据详细疑问裁减、安插更多的组成局部,从而更迅速和繁难地构建完整的处置疑问的打算。
\x0d\x0a————补充解释————\x0d\x0a也就是说:1)框架自身普通不完整到可以处置特定疑问;2)框架天生就是为裁减而设计的;3)框架外面可认为后续裁减的组件提供很多辅佐性、撑持性的繁难易用的适用工具(utilities),也就是说框架时常配套了一些协助处置某类疑问的库(libraries)或工具(tools)。
\x0d\x0a解放性:针对处置特定疑问的软件框架会首先定义疑问的边界,进而将相关的软件组件解放在这个边界内,坚持框架在处置疑问方面上的内聚性。
Struts多Action的基类是什么?怎么应用该基类成功多Action操作。
MVC形式是Model-View-Controller的缩写,中文翻译为形式-视图-控制器。
MVC运行程序总是由这三个局部组成。
Event(事情)造成Controller扭转Model或View,或许同时扭转两者。
只需Controller扭转了Models的数据或许属性,一切依赖的View都会智能降级。
相似的,只需Controller扭转了View,View会从潜在的Model中失掉数据来刷新自己。
MVC形式最早是smalltalk言语钻研团提出的,运行于用户交互运行程序中。
smalltalk言语和java言语有很多相似性,都是面向对象言语,很人造的SUN在petstore(宠物店)事例运行程序中就介绍MVC形式作为开发Web运行的架构形式。
MVC形式是一种架构形式,其实须要其余形式单干成功。
在J2EE形式目录中,理论驳回service to worker形式成功,而service to worker形式可由集中控制器形式,派遣器形式和Page Helper形式组成。
而Struts只成功了MVC的View和Controller两个局部,Model局部须要开发者自己来成功,Struts提供了形象类Action使开发者能将Model运行于Struts框架中。
MVC形式是一个复杂的架构形式,其成功也显得十分复杂。
然而,咱们曾经终结出了很多牢靠的设计形式,多种设计形式联合在一同,使MVC形式的成功变得相对繁难易行。
Views可以看作一棵树,显然可以用Composite Pattern来成功。
Views和Models之间的相关可以用Observer Pattern表现。
Controller控制Views的显示,可以用Strategy Pattern成功。
Model理论是一个调解者,可驳回Mediator Pattern来成功。
如今让咱们来了解一下MVC三个局部在J2EE架构中处于什么位置,这样有助于咱们了解MVC形式的成功。
MVC与J2EE架构的对应相关是:View处于Web Tier或许说是Client Tier,理论是JSP/Servlet,即页面显示局部。
Controller也处于Web Tier,理论用Servlet来成功,即页面显示的逻辑局部成功。
Model处于Middle Tier,理论用服务端的javaBean或许EJB成功,即业务逻辑局部的成功。
一、MVC设计思维MVC英文即Model-View-Controller,即把一个运行的输入、处置、输入流程依照Model、View、Controller的方式启动分别,这样一个运行被分红三个层——模型层、视图层、控制层。
视图(View)代表用户交互界面,关于Web运行来说,可以概括为HTML界面,但有或许为XHTML、XML和Applet。
随着运行的复杂性和规模性,界面的处置也变得具备应战性。
一个运行或许有很多不同的视图,MVC设计形式关于视图的处置仅限于视图上数据的采集和处置,以及用户的恳求,而不包括在视图上的业务流程的处置。
业务流程的处置交予模型(Model)处置。
比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和恳求传递给控制和模型。
模型(Model):就是业务流程/形态的处置以及业务规定的制订。
业务流程的处置环节对其它层来说是黑箱操作,模型接受视图恳求的数据,并前往最终的处置结果。
业务模型的设计可以说是MVC最关键的外围。
目前盛行的EJB模型就是一个典型的运行例子,它从运行技术成功的角度对模型做了进一步的划分,以便充沛应用现有的组件,但它不能作为运行设计模型的框架。
它仅仅通知你按这种模型设计就可以应用某些技术组件,从而缩小了技术上的艰巨。
对一个开发者来说,就可以专一于业务模型的设计。
MVC设计形式通知咱们,把运行的模型按必定的规定抽取进去,抽取的档次很关键,这也是判别开发人员能否低劣的设计依据。
形象与详细不能隔得太远,也不能太近。
MVC并没有提供模型的设计方法,而只通知你应该组织治理这些模型,以便于模型的重构和提高重用性。
咱们可以用对象编程来做比喻,MVC定义了一个顶级类,通知它的子类你只能做这些,但没法限度你能做这些。
这点对编程的开发人员十分关键。
业务模型还有一个很关键的模型那就是数据模型。
数据模型关键指实体对象的数据 保留(继续化)。
比如将一张订单保留到数据库,从数据库失掉订单。
咱们可以将这个模型独自列出,一切有关数据库的操作只限度在该模型中。
控制(Controller)可以了解为从用户接纳恳求, 将模型与视图婚配在一同,独特成功用户的恳求。
划分控制层的作用也很显著,它清楚地通知你,它就是一个散发器,选用什么样的模型,选用什么样的视图,可以成功什么样的用户恳求。
控制层并不做任何的数据处置。
例如,用户点击一个衔接,控制层接受恳求后, 并不处置业务消息,它只把用户的消息传递给模型,通知模型做什么,选用合乎要求的视图前往给用户。
因此,一个模型或许对应多个视图,一个视图或许对应多个模型。
模型、视图与控制器的分别,使得一个模型可以具备多个显示视图。
假设用户经过某个视图的控制器扭转了模型的数据,一切其它依赖于这些数据的视图都应反映到这些变动。
因此,无论何时出现了何种数据变动,控制器都会将变动通知一切的视图,造成显示的降级。
这实践上是一种模型的变动-流传机制。
模型、视图、控制器三者之间的相关和各自的关键性能,如图1所示。
二、MVC设计形式的成功 提供了一个很好的成功这种经典设计形式的相似环境。
开发者经过在ASPX页面中开发用户接口来成功视图;控制器的性能在逻辑性能代码()中成功;模型理论对应运行系统的业务局部。
在中成功这种设计而提供的一个多层系统,较经典的ASP结构成功的系统来说有显著的优势。
将用户显示(视图)从举措(控制器)中分别进去,提高了代码的重用性。
将数据(模型)从对其操作的举措(控制器)分别进去可以让你设计一个与后盾存储数据有关的系统。
就MVC结构的实质而言,它是一种处置耦合系统疑问的方法。
2.1 视图视图是模型的表示,它提供用户交互界面。
经常使用多个蕴含单显示页面的用户部件,复杂的Web页面可以展现来自多个数据源的内容,并且网页人员,美工能独自介入这些Web页面的开发和保养。
在下,视图的成功很繁难。
可以像开发WINDOWS界面一样间接在集成开发环境下经过拖动控件来成功页面开发本。
本文中引见每一个页面都驳回复合视图的方式即:一个页面由多个子视图(用户部件)组成;子视图可以是最繁难HTML 控件、主机控件或多个控件嵌套构而成的Web自定义控件。
页面都由模板定义,模板定义了页面的规划,用户部件的标签和数目,用户指定一个模板,平台依据这些消息智能创立页面。
针对静态的模板内容,如页面上的站点导航,菜单,友好链接,这些经常使用缺省的模板内容性能;针对灵活的模板内容(关键是业务内容),因为用户的恳求不同,只能经常使用前期绑定,并且针对用户的不同,用户部件的显示内容启动过滤。
经常使用由用户部件依据模板性能组成的组合页面,它增强了可重用性,并原型化了站点的规划。
视图局部大抵处置流程如下:首先,页面模板定义了页面的规划;页面性能文件定义视图标签的详细内容(用户部件);而后,由页面规划战略类初始化并加载页面;每个用户部件依据它自己的性能启动初始化,加载校验器并设置参数,以及事情的委托等;用户提交后,经过了表示层的校验,用户部件把数据智能提交给业务虚体即模型。
这一局部关键定义了WEB页面基类PageBase;页面规划战略类PageLayout,成功页面规划,用于加载用户部件到页面;用户部件基类UserControlBase即用户部件框架,用于灵活加载测验部件,以及成功用户部件的共性化。
为了成功WEB运行的灵敏性,视图局部也用到了许多性能文件例如:置文件有模板性能、页面性能、门路性能、验证性能等。
2.2 控制器为了能够控制和协调每个用户超过多个恳求的处置,控制机制应该以集中的方式启动治理。
因此,为了到达集中治理的目标引入了控制器。
运行程序的控制器集中从客户端接纳恳求(典型状况下是一个运转阅读器的用户),选择口头什么商业逻辑性能,而后将发生下一步用户界面的责任委派给一个适当的视图组件。
用控制器提供一个控制和处置恳求的集中入口点,它担任接纳、截取并处置用户恳求;并将恳求委托给散发者类,依据以后形态和业务操作的结果选择向客户出现的视图。
在这一局部关键定义了HttpReqDispatcher(散发者类)、HttpCapture(恳求捕捉者类)、Controller(控制器类)等,它们相互配合来成功控制器的性能。
恳求捕捉者类捕捉HTTP恳求并转发给控制器类。
控制器类是系统中处置一切恳求的最后入口点。
控制器成功一些必要的处置后把恳求委托给散发者类;散发者类散发者担任视图的治理和导航,它治理将选用哪个视图提供应用户,并提供应散发资源控制。
在这一局部区分驳回了散发者、战略、工厂方法、适配器等设计形式。
为了使恳求捕捉者类智能捕捉用户恳求并启动处置, 提供低级别的恳求/照应 API,使开发人员能够经常使用 框架类为传入的 HTTP 恳求提供服务。
为此,必定创作允许 接口和成功 ProcessRequest() 方法的类即:恳求捕捉者类,并在 的 <httphandlers> 节中参与类。
收到的每个传入 HTTP 恳求最终由成功 IHTTPHandler 的类的特定实例来处置。
IHttpHandlerFactory 提供了处置 IHttpHandler 实例 URL 恳求的实践解析的结构。
HTTP 处置程序和工厂在 性能中申明为 文件的一局部。
定义了一个 <httphandlers> 性能节,在其中可以参与和移除处置程序和工厂。
子目录承袭 HttpHandlerFactory 和 HttpHandler 的设置。
HTTP 处置程序和工厂是 页框架的主体。
工厂将每个恳求调配给一个处置程序,后者处置该恳求。
例如,在全局 文件中, 将一切对 ASPx 文件的恳求映射到 HttpCapture类: <httphandlers>......</httphandlers>2.3 模型MVC系统中的模型从概念上可以分为两类――系统的外部形态和扭转系统形态的举措。
模型是你一切的商业逻辑代码片段所在。
本文为模型提供了业务虚体对象和业务处置对象:一切的业务处置对象都是从ProcessBase类派生的子类。
业务处置对象封装了详细的处置逻辑,调用业务逻辑模型,并且把照应提交到适合的视图组件以发生照应。
业务虚体对象可以经过定义属性形容客户端表复数据。
一切业务虚体对象都EntityBase派生子类对象,业务处置对象可以间接对它启动读写,而不再须要和request、response对象启动数据交互。
经过业务虚体对象成功了对视图和模型之间交互的允许。
成功时把做什么(业务处置)和如何做(业务虚体)分别。
这样可以成功业务逻辑的重用。
因为各个运行的详细业务是不同的,这里不再罗列其详细代码实例。
三、MVC设计形式的裁减 经过在中的MVC形式编写的,具备极端良好的可裁减性。
它可以轻松成功以下性能:①成功一个模型的多个视图;②驳回多个控制器;③当模型扭转时,一切视图将智能刷新;④一切的控制器将相互独立上班。
这就是MVC形式的好处,只需在以前的程序上稍作修正或参与新的类,即可轻松参与许多程序性能。
以前开发的许多类可以重用,而程序结构基本不再须要扭转,各类之间相互独立,便于集团开发,提高开发效率。
上方探讨如何成功一个模型、两个视图和一个控制器的程序。
其中模型类及视图类基本不须要扭转,与前面的齐全一样,这就是面向对象编程的好处。
关于控制器中的类,只须要参与另一个视图,并与模型出现关联即可。
该形式下视图、控制器、模型三者之间的示用意如图2所示。
雷同也可以成功其它方式的MVC例如:一个模型、两个视图和两个控制器。
从上方可以看出,经过MVC形式成功的运行程序具备极端良好的可裁减性,是面向对象编程的未来方向。
四、MVC的优势大局部用环节言语比如ASP、PHP开收回来的Web运行,初始的开发模板就是混合层的数据编程。
例如,间接向数据库发送恳求并用HTML显示,开发速度往往比拟快,但因为数据页面的分别不是很间接,因此很难表现出业务模型的样子或许模型的重用性。
产品设计弹性力度很小,很难满足用户的变动性需求。
MVC要求对运行分层,只管要破费额外的上班,但产品的结构明晰,产品的运行经过模型可以失掉更好地表现。
首先,最关键的是应该有多个视图对应一个模型的才干。
在目前用户需求的极速变动下,或许有多种方式访问运行的要求。
例如,订单模型或许有本系统的订单,也有网上订单,或许其余系统的订单,但关于订单的处置都是一样,也就是说订单的处置是分歧的。
按MVC设计形式,一个订单模型以及多个视图即可处置疑问。
这样缩小了代码的复制,即缩小了代码的保养量,一旦模型出现扭转,也易于保养。
其次,因为模型前往的数据不带任何显示格局,因此这些模型也可间接运行于接口的经常使用。
再次,因为一个运行被分别为三层,因此有时扭转其中的一层就能满足运行的扭转。
一个运行的业务流程或许业务规定的扭转只需改动MVC的模型层。
控制层的概念也很有效,因为它把不同的模型和不同的视图组合在一同成功不同的恳求,因此,控制层可以说是蕴含了用户恳求权限的概念。
最后,它还无利于软件工程化治理。
因为不同的层各司其职,每一层不同的应用具备某些相反的特色,无利于经过工程化、工具化发生治理程序代码。
五、MVC的无余 MVC的无余体如今以下几个方面:(1)参与了系统结构和成功的复杂性。
关于繁难的界面,严厉遵照MVC,使模型、视图与控制器分别,会参与结构的复杂性,并或许发生过多的降级操作,降落运转效率。
(2)视图与控制器间的过于严密的衔接。
视图与控制器是相互分别,但确实咨询严密的部件,视图没有控制器的存在,其运行是很有限的,反之亦然,这样就障碍了他们的独立重用。
(3)视图对模型数据的低效率访问。
依据模型操作接口的不同,视图或许须要屡次调用才干取得足够的显示数据。
对未变动数据的不用要的频繁访问,也将侵害操作性能。
(4) 目前,普通初级的界面工具或结构器不允许MVC形式。
变革这些工具以顺应MVC须要和建设分别的部件的代价是很高的,从而形成经常使用MVC的艰巨。