安下载(俺下载):打造放心的绿色安全下载站! 安下载首页|软件分类|最近更新

所在位置: 首页  >  电脑软件  >  编程开发  >  编程工具 > Struts v2.3.16.1 最新版
Struts

Struts

 v2.3.16.1 最新版
  • 软件大小:68.55 MB
  • 更新日期:2019-10-31 16:42
  • 软件语言:简体中文
  • 软件类别:编程工具
  • 软件授权:免费版
  • 软件官网:
  • 适用平台:WinXP, Win7, Win8, Win10, WinAll
  • 软件厂商:

6
软件评分

本地下载文件大小:68.55 MB

软件介绍 人气软件 下载地址

为您推荐: 编程开发

  Struts2是一个兼容Struts1和WebWork的MVC框架,该程序由三个强大的功能模块组成,分别是:核心控制器FilterDispatcher,通过三个大功能模块将整个系统支撑起来,形成最具有可塑性的开发环境;随着程序的不断更新,不管是性能还是功能模块都得到了最大限度的开发以及完善;该框架提供了将多个动作链接到定义的序列或工作流中的能力,可以通过将链结果应用于给定的Action并使用ChainingInterceptor拦截其目标Action的调用;支持在创建动作实例或处理动作期间发生异常时,可以使用ActionEventListener添加一些逻辑;内置的ActionMapping是一个数据传输对象,可将诸如Action类和要执行的方法之类的详细信息收集在一起,调度程序和各种用户界面组件使用该映射,通过struts.mapper.class在中输入可以自定义struts.properties;ActionMapper接口提供HTTP请求与操作调用请求之间的映射,反之亦然;强大又实用,需要的用户可以下载体验

Struts

软件功能

  1、struts2的模型组件

  Java EE 应用里的模型组件,通常指系统的业务逻辑组件,而隐藏在系统逻辑组件下面的,可能还包含了DAO,领域对象等组件。

  MVC框架里的业务控制器会调用模型组件的方法来处理用户请求,也就是说,业务控制器不会对用户请求进行实际处理,用户请求最终由模型组件负责处理,业务控制器只是中间负责调度器,这也是称Action为控制器的原因

  2、Struts2的视图组件

  Struts2已经改变了struts1只能使用JSP作为视图技术的现状,允许使用其他模版技术。

  当struts2的控制器返回逻辑视图名时,逻辑视图并未与任何的视图技术关联,仅仅是返回一个字符串,该字符串作为逻辑视图名。

  当我们在struts.xml文件中配置Action时,要为Action元素指定系列result子元素,每个result子元素定义一个逻辑视图和物理视图之间的映射,如果没有指定type属性,默认使用JSP左右视图资源。也可以指定很多类型 chain 转发到指定action中,redircter,重定向。

  3、运行流程

  Struts2框架的运行流程非常相似于WebWork框架的流程,struts2其实就是WebWork2.2的升级版,因此,struts2的运行流程与WebWork运行流程完全相同。

软件特色

  核心控制器 StrutsPrepareAndExecuteFilter

  StrutsPrepareAndExecuteFilter与struts2以前版本中的FilterDispatcher一样。它是struts2框架的核心控制器,该控制器作为一个Filter运行在web应用中,它负责拦截所有的用户请求,当用户请求到达时,该Filter会过滤用户请求,如果用户请求以action结尾,该请求就会被转入struts2框架来处理。

  Struts2框架获取*.action请求后,将根据*.action请求的前面部分决定调用那个业务逻辑组件,例如:对于login.action请求,Struts2调用名为login的Action来处理该请求。

  Struts2用户处理请求的Action实例,并不是用户实现的业务控制器,而是Action代理--因为用户实现的业务控制器并没有与ServletAPI耦合,显示无法处理用户请求,而struts2框架提供了系列拦截器,该系列拦截器负责将HttpServletRequest请求中的桉树解析出来,传入Action中,并huidiaoAction的execute方法来处理用户请求。

  用户实现的Action仅仅是struts2的Action代理的代理目标,用户实现的业务控制器Action则包含了对用户请求的处理,用户的请求数据包含在HttpServletRequest对象中, 而用户Action类无需访问HttpServletRequest对象,拦截器会将请求数据解析出来并传给业务逻辑组件Action实例

  业务控制器

  简述:左右项目开发中action控制层,用户接受数据,封装数据,调用业务逻辑层

  业务控制器组件就是用户Action类的实例,Action类通常包含了一个excute方法,该方法返回一个字符串-----该字符串就是一个逻辑视图名,当业务控制器处理完用户请求后,根据处理结果不同,excute方法返回不同字符串。

  在写完控业务制器后,需要配置Action的如下三个部分定义

  1、Action所处理的URL

  2、Action组件所对应的实现类

  3、Action里包含的逻辑视图和物理资源之间的对应关系

  每个Action都要处理一个用户请求,而用户请求总是包含了指定URL,当StrutsPrepareAndExecuteFilter拦截到用户请求后,根据请求的URL和Action处理URL之间的对应关系来处理转发

使用说明

  该框架提供了多个访问帮助器来访问会话,应用程序,请求范围。

  从Java访问

  可以通过访问所有JEE范围属性映射ActionContext。

Struts

  不要ActionContext.getContext()在Action类的构造函数中使用。可能没有设置这些值,并且该调用的可能返回null getSession()。

  我们还可以通过访问HttpServletRequest和HttpServletResponse对象本身ServletActionContext。通常不建议这样做,因为这会将我们的操作与Servlet规范联系在一起。

Struts

  实施ServletRequestAware或ServletResponseAware,与组合"servletConfig" interceptor,是访问请求和响应对象,具有相同的警告的替代方式。

Struts

  从视图访问(JSP,FreeMarker等)

  通过#session和#request值通过OGNL访问请求和会话属性。

  该#attr堆栈值将搜索javax.servlet.jsp.PageContext指定的关键。如果PageContext不存在,它将按该顺序搜索请求,会话和应用程序范围。

Struts

  要从第三方JSP标签库访问ValueStack,请使用

Struts

  设置参数后,第三方JSP标签库可以访问变量或使用JSP 2.0 EL(表达语言)。这是方便的,因为短手EL表达式语法

  ${expression}

  可以在文本中或标签属性中使用:

Struts

  实际上,必须公开几个变量,以有效利用第三方Taglib(例如DisplayTag)。不幸的是,这种方法导致了很多标签。

  为什么我们不能只用OGNL代替EL?

  图标不幸的是,这不是那么简单。我们进行了修补,JSPFactory.setDefault()以getPageContext()创建ExpressionEvaluator并使用OGNL。该策略在实践中可行,但是Jasper2生成的代码不会调用,JSPFactory.getPageContext().getExpressionEvaluator()而是直接转到与Jakarta Commons-EL实现硬连接的静态方法。

  即使这种方法行得通,它也不是干净的,JSPFactory.setDefault()只能由JSP实现调用。

  JSP 2.0 EL中有一个简单的解决方案,即使不是很优雅,也可以将ValueStack暴露给OGNL。可以创建可以从EL表达式调用的自定义函数。函数必须是“公共静态”的,并在TLD文件中指定。

  要使用功能,请将TLD导入要使用功能的JSP文件中。例如,您可以通过EL中的函数“ vs”(用于valuestack)评估OGNL表达式来访问Action属性。

Struts

  要使用此代码,您必须添加wwel.tld并将Functions.java其添加到您的webapp项目中。

Struts

  如果有人感兴趣,那么对开发人员(如您!)定义一组可以在框架的将来版本中包含的功能将很有帮助。

Struts

  描述

  通过使用该标记,开发人员可以通过指定动作名称和可选的命名空间来直接从JSP页面调用动作。标签的正文内容用于呈现Action的结果。除非指定了executeResult参数,否则将忽略在struts.xml中为此操作定义的任何结果处理器。

  可以使用嵌套的param标签将参数传递给操作。

  放置在上下文中

  在评估整个标签之前,该操作将不会发布到上下文,这意味着在标签主体内部无法访问该操作,例如:

Struts

  连锁结果

  该链条结果是调用与它自己的拦截器栈和结果的操作结果类型。该拦截器允许动作在传播源动作状态的同时将请求转发到目标动作。以下是如何定义此序列的示例。

  可以在此动作映射之后执行同一命名空间(或默认的““命名空间)中的另一个动作映射(请参阅配置文件)。还可以添加可选的“名称空间”参数,以指定其他名称空间中的操作。

  链拦截器

  如果需要将链中以前的动作的属性复制到当前动作,则应应用ChainingInterceptor。拦截器将从请求中复制原始参数,并将ValueStack传递到目标Action。ValueAction会记住源Action,从而允许目标Action使用ValueStack访问先前Action的属性,并使这些属性可用于链的最终结果,例如JSP或Velocity页面。

  动作链接的一种常见用法是提供查找列表(例如状态的下拉列表)。由于这些操作被放置在ValueStack上,因此它们的属性将在视图中可用。也可以使用ActionTag从显示页面执行动作来完成此功能。您也可以使用“ 重定向操作结果”来完成此操作。

  小心使用

  经验表明,应谨慎使用链接。如果过度使用链接,则应用程序可能会变成“意大利面条代码”。应将操作视为事务脚本,而不应视为业务外观中的方法。一定要问自己,为什么需要从一个动作链接到另一个动作。是导航问题,还是可以将Action2中的逻辑推回到支持类或业务基础上,以便Action1也可以调用它?

  理想情况下,动作类应尽可能短。应该将所有核心逻辑推回支持类或业务外观,以便Action仅调用方法。动作最好用作适配器,而不是用作定义编码逻辑的类。

Struts

  组态

  现在,整个Struts2应用程序只能有一个ActionEventListener实例。您可以通过添加bean定义,通过struts.xml对其进行配置:

Struts

人气软件