`
独立与自由
  • 浏览: 11088 次
社区版块
存档分类
最新评论

Convention插件与"约定"支持

阅读更多

使用Convention,必须将Struts2下的struts2-convention-plugin-*.*.*.jar复制到WEB-INF/lib路径下

 

Action的搜索和映射约定:(它会自动搜索位于action、actions、struts、struts2包下的所有java类)

 

          会把如下java类当做Action:

 

                       >所有实现了com.opensymphony.xwork2.Action的java类
                      >所有以Action结尾的java类
                           :wang.app.actions.LoginAction
                            wang.app.actions.books.getBooks    (该类实现了com.opensymphony.xwork2.Action接口)
                            wang.app.action.LoginAction
                            wang.app.struts.auction.bid.BidAction
                            wang.app.struts2.wage.hr.AddEmployeeAction

 

允许设置如下三个常量:

 

>struts.convention.exclude.packages:指定不扫描哪些包下的java类,位于这些包下的java类不会自动映射成Action

>struts.convention.package.Locators:指定某包作为根包(对于actions.wang.LoginAction类,按约定映射为/wang/login,如果该常量设为wang,则该Action将会映射为/login)

>struts.convention.action.packages:Convention除了扫描action.actions.struts.struts2包,还扫描该常量指定的一个或多个包

 

将扫描包映射为命名空间:    (会将action、actions、struts、struts2映射为根命名空间)
                :wang.app.actions.LoginAction 映射到/
                 wang.app.actions.books.GetBooks 映射到/books
                 wang.app.struts2.wage.hr.AddEmployeeAction 映射到/wage/hr

Action类名映射为Action的name属性:
                1.如果Action类型包含Action后缀,将Action后缀去掉,否则不做任何处理
                2.得到第1步的结果,将驼峰写法转换为中划线写法
                    :wang.app.actions.LoginAction 映射到/login.action
                     wang.app.actions.books.GetBooks 映射到/books/get-books.action
                      wang.app.struts2.wage.hr.AddEmployeeAction 映射到/wage/hr/add-employee.action

 

按约定映射Result:
            (Convention总会到Web应用的WEB-INF/content路径下定位物理资源,约定是:
             actionName+result+suffix,当逻辑视图找不到对应视图资源时,Convention会自动使用actionName+suffix作为视图资源,suffix指的是视图技术)
           

Action的URL 返回逻辑视图名 结果类型 对应物理视图
/login success Dispatcher \WEB-INF\content\login-success.jsp
/wang/get-book success Dispatcher \WEB-INF\content\wang\get-book-success.jsp


content
               |——login.jsp
               |——wang
                    |——get-book-success.jsp

 

 使用Config Browser:(可以看到每个Action详细映射信息)

 

安装该插件:    将Struts2项目的lib目录下的struts-config-browser-plugin-*.*.*.jar文件复制到WEB-INF/lib路径下
首页地址:    http://localhost:8080/应用名/config-borwser/actionNames.action

 

Action链约定:

 

Action处理后不进入试图页面,进入另一个Action,须遵守如下约定:

>第一个Action返回的逻辑视图字符串没有对应逻辑视图
>第二个Action与第一个Action处于同一个包下
>第二个Action映射的URL为:firstactionName+resultCode

例:

package org.wang.action
...
public class FirstAction extends ActionSupport
{
		...
	public String execute()
	{
		...
		return "second";
	}
}

 (WEB-INF/content下不要提供first-second.jsp或first.jsp,第二个Action类名应为FirstSecondAction)

Convention插入的相关常量:(应看Struts2官方API更佳)

分享到:
评论

相关推荐

    Struts2-rest插件(有注释)

    从 Struts 2.1 开始,Struts 2 改为使用 Convention 插件来支持零配置。Convention 插件彻底地抛弃了配置信息,不仅不需要使用 struts.xml 文件进行配置,甚至不需要使用 Annotation 进行配置。而是由 Struts 2 根据...

    STRUTS2 Convention零配置

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

    struts2零配置convention-plugin

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

    gulp-check-file-naming-convention:检查文件名是否符合命名约定

    check-file-naming-convention插件 用法 首先,安装gulp-check-file-naming-convention作为开发依赖项: npm install --save-dev gulp-check-file-naming-convention 然后,将其添加到您的gulpfile.js : var ...

    convention-plugin.doc

    从struts2.1版本开始,Convention Plugin作为替换替换Codebehind Plugin来实现Struts2的零配置。 • 包命名习惯来指定Action位置 • 命名习惯制定结果(支持JSP,FreeMarker等)路径 • 类名到URL的约定转换 • 包名...

    struts2注解详细说明

    Hello world到目前为止,你已经在你项目中添加了Convention插件支持,首先我们从一个非常简单的例子开始入手。本例中,我们将演示根据访问URL来访问固定的Action,默认情况下,Convention会默认所

    Struts2注解使用说明文档

    而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该插件完全抛弃配置信息,不仅不需要是使用struts.xml文件进行配置,甚至不需要使用Annotation进行配置,而是由struts2根据约定...

    struts2注解使用.doc

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

    struts2注解详解

    而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该插件完全抛弃配置信息,不仅不需要是使用struts.xml文件进行配置,甚至不需要使用Annotation进行配置,而是由struts2根据约定...

    SSH整合开发框架,可直接用于开发

    采用了最新的struts-convention插件,命名已-隔开,约定优于配置。 action的访问方式:域名:端口/action包名/action名!方法.action 对应action返回的页面:域名:端口/action包名/action名-方法返回值.jsp 2、数据库...

    使用Struts2开发RESTful服务

    REST简介资源和标识符操作资源的方式Struts2的REST支持RestActionMapper简介为Struts2应用安装REST插件实现支持REST的Action类实现视图层参考资料从V2.1开始,Struts2开始提供Convention插件,它允许根据“约定”来...

    flake8-test-name:flake8插件,用于验证测试名称功能

    测试名称功能验证器(Flake8插件) 的扩展,以确保测试函数名称遵循给定的约定 Flake8的插件当同时安装了Flake8和flake8-test-name ,该插件将在显示flake8的版本时显示: $ flake8 --version3.6.0 (flake8-test-...

    Struts2.1Spring2.5IBatisJQuery框架

    1) 利用Struts2的struts2-convention-plugin插件,实现URL →Action、Result→JSP的自动映射。 2) 利用Struts2的struts2-spring-plugin插件,实现在Action中自动注入service对象。 3) 利用Spring的@Service、@...

    bem-react-helper:一个帮助程序,使其更容易根据BEM约定来命名React组件

    React中没有任何本机工具(或JSX,甚至HTML和CSS)来编写与BEM相关的代码。 因此,开发人员通常使用条件编写CSS类: export default class Block extends Component { render ( ) { const classes = [ 'block' ] ; ...

    Maven权威指南 很精典的学习教程,比ANT更好用

    约定优于配置(Convention Over Configuration) 1.3. 一个一般的接口 1.4. 基于Maven插件的全局性重用 1.5. 一个“项目”的概念模型 1.6. Maven是Ant的另一种选择么? 1.7. 比较Maven和Ant 1.8. 总结 2. ...

    单点登录源码

    服务网关,对外暴露统一规范的接口和包装响应结果,包括各个子系统的交互接口、对外开放接口、开发加密接口、接口文档等服务,可在该模块支持验签、鉴权、路由、限流、监控、容错、日志等功能。示例图: ![API网关]...

Global site tag (gtag.js) - Google Analytics