`

Struts2零配置

    博客分类:
  • ssh
 
阅读更多

首先在Struts2工程中导入所需的jar包

ezmorph-1.0.3.jar
json-lib-2.1-jdk15.jar
struts2-convention-plugin-2.2.1.1.jar
struts2-rest-plugin-2.2.1.1.jar
xstream-1.2.2.jar

以上这些包是实现零配置和REST所必须的jar,缺一不可。

Struts2的Convention插件的主要特点是“约定优于配置”,可能是受到了Ruby on rails框架的启发,Struts2也借鉴了这个创意,看文字中的意思就可以明白,只要我们按照“约定”来开发,就可以摒弃繁琐的XML文件,也就是说,action等类配置完全不必写在struts.xml文件中了。

那么,“约定”又是什么呢?

其实,只要把零配置的jar文件拷贝到工程中WEB-INF/lib文件夹下,就自动实现了零配置。对于Struts2而言,它会自动在你创建的action、actions、struts、struts2这四个包下自动搜索,只要满足2个条件,Struts2就会认为包里的类是Action类,哪2个条件呢?一是:实现了com.opensymphony.xwork2.Action接口的类;二是:类名以“Action”结尾的类。

当然,以上这两个条件是Struts2的默实现,你也可以按自己的想法来做出改变,比如可以搜索以“Controller”结尾的类,怎么改呢?后面会说到。

当Struts2按约定找到了这些符合条件的类以后,就会自动部署这些Action,但在不同的包结构下,访问这些Action的URL也是不同的,请看下面的表格举例:
包 访问URL
org.crazyit.actions.LoginAction 映射到/
com.test.action.abc.UserAction 映射到/abc
org.crazyit.struts2.wage.hr.AddEmployeeAction 映射到/wage/hr
org.crazyit.struts.auction.bid.BidAction 映射到/auction/bid

看到上面的表格是不是了解了呢?Struts2总是以action、actions、struts、struts2包为根包,来映射成对应的URL访问路径。
 
而访问Action的名字,也应遵循两个规则,第一:如果类名包含Action后缀,那么把Action后缀去掉;第二:将以骆驼命名法的类名转成中画线写法,所有的字母都小写,单词之间用中画线分割。比如:
类名 映射
LoginAction /login.action
GetBooks /get-books.action
AddEmployeeAction /add-employee.action
 
以上按照这些约定,Strtus2就会自动识别Action类,并正常访问它们了。编写Action则于从前未使用零配置插件一样,没有任何不同。
**********************
说完了Action,那么Result如何映射呢?因为很少有Action不返回逻辑视图的,零配置插件也提供了映射Result的约定。默认情况下,Result使用:action的URL + Result返回值 + 后缀 来做约定。例如当一个UserAction返回success时,Strus2就会查找user-success.jsp作为视图资源。而Struts2默认查找的地方在/WEB-INF/content目录下,那当然了,如果视图资源不是jsp文件,那也是一样的。比如LoginAction返回error,并且结果类型为FreeMarker,结果视图为login-error.ftl。
 
而JSP等视图资源也没有什么特别之处,到此为止,配置全部由约定完成,无需配置struts.xml文件。
****************
但上面曾说过,如果要改变默认搜索包的名字,要怎样呢?只需在struts.xml文件中写入如下配置即可:
查找以“Controller”结尾的类为Action类
 
指定哪些包为搜索Action的根包
 
排除掉不搜索的包
 
还有很多可以改变Struts2的默认规则,其他可参阅文档。
 
而REST插件可以让Struts2实现RESTful风格的URL访问资源方式,具体REST风格是什么,可以参阅《RESTful Webservice》这本书。
其实Struts2本质上是一个MVC框架,而REST插件是将原本的URL转换成RESTful风格的URL而已, REST插件中RestActionMapper负责接收参数,把HTTP的请求方式分别用7个方法来做出处理:
HTTP方法 URI 调用Action的方法 请求参数
GET /book index 
POST /book create 
PUT /book/2 update id=2
DELETE /book/2 destory id=2
GET /book/2 show id=2
GET /book/2/edit edit id=2
GET /book/new editNew 
 
而使用了REST插件之后,Action类就不使用execute()方法来处理用户请求了,而是上面的7个方法来实现

分享到:
评论

相关推荐

    struts2 零配置

    "Struts2 零配置"是Struts2的一种特性,允许开发者在不编写大量XML配置文件的情况下,快速搭建和运行应用程序。这主要得益于Struts2的插件机制和注解支持。 首先,Struts2的零配置主要依赖于以下两个核心概念: 1....

    struts2零配置

    "Struts2零配置"是Struts2框架中的一个重要特性,旨在提高开发效率,减少繁琐的XML配置工作。这个特性允许开发者在不编写大量XML配置文件的情况下,依然能实现应用的正常运行。 在传统的Struts2应用中,开发者需要...

    struts2零配置个人整理文档

    ### Struts2零配置个人整理文档 #### 一、Convention插件详解 ##### 1. 设置结果页面路径 - **背景介绍**:Struts2框架提供了便捷的方式来处理Web请求,并返回响应视图。为了简化配置过程,Struts2提供了一个名为...

    Struts2零配置+FreeMarker用户管理系统(UMS)

    这个名为"Struts2零配置+FreeMarker用户管理系统(UMS)"的项目,旨在通过注解的方式展示如何在不编写XML配置文件的情况下,利用Struts2和FreeMarker创建一个用户管理系统。 首先,我们来了解一下Struts2框架。Struts...

    struts2零配置入门代码

    在“struts2零配置入门代码”这个主题中,我们将深入探讨如何在不编写大量XML配置文件的情况下,启动并运行一个基本的Struts2应用程序。 Struts2的核心在于它的Action类,它是业务逻辑处理的主要组件。在“零配置”...

    struts2 零配置所需的包及示例

    "零配置"是指在Struts2中可以通过不写XML配置文件,而是利用注解或者Java配置来实现应用程序的配置。这种方式使得代码更加简洁,也更易于维护。下面我们将深入探讨Struts2的零配置实现及其所需的包和示例。 首先,...

    struts2零配置[总结].pdf

    在早期,Struts2主要依赖XML配置文件来定义和管理应用程序的行为,但随着技术的进步和对简洁配置的需求增加,Struts2引入了零配置的概念,以减少繁琐的XML配置。 "Struts2零配置"指的是尽量减少或消除传统Struts2...

    简述STRUTS2_Convention零配置

    STRUTS2 Convention 零配置是Struts2框架中的一种高级特性,旨在简化应用程序的配置,让开发者能够更快地构建MVC应用。从Struts2.1版本开始,推荐使用Convention插件替代Codebehind插件,因为它更加自动化,几乎无需...

    MyFramework - struts2 零配置:convention

    "MyFramework - Struts2 零配置:convention" 主题着重于介绍如何使用Struts2的Convention插件实现“零配置”开发,极大地简化了传统XML配置的繁琐过程。在传统的Struts2应用中,开发者需要为每个Action类和结果页面...

    struts2 spring4 hibernate4 Struts2零配置,json基本架包

    struts2 spring4 hibernate4 Struts2零配置基本架包 struts2-json-plugin-2.5.5.jar struts2-convention-plugin-2.5.5.jar

    struts2零配置convention-plugin

    从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该插件完全抛弃配置信息,不仅不需要是使用struts.xml文件进行...

    STRUTS2零配置.doc

    Struts2是一款流行的Java web开发框架,其零配置特性始于版本2.1,主要通过引入Convention插件实现。Convention插件旨在简化应用配置,避免过度依赖XML或注解,通过预定义的规则自动配置Action、结果视图以及Action...

    struts2零配置[收集].pdf

    Struts2是一个流行的Java web开发框架,...总的来说,Struts2 LightURL插件是Struts2框架向更简洁配置方式迈出的一步,它整合了类似插件的优点,减少了开发者在XML配置上的工作量,使Struts2应用的构建更加灵活和高效。

    S2SH全注解的增删改查(struts2零配置)

    网上也很少关于全注解配置的例子,这里做了一个关于Struts2.2.3+Spring 3.0.6 + Hibernate3.6的一个很简陋增删改查,以供参考,主要是一个全注释的例子和对新的SSH2的整合。附带sql和jar包

Global site tag (gtag.js) - Google Analytics