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

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更佳)

分享到:
评论

相关推荐

    Web开发学习(2)配置convention插件

    在Web开发领域,"配置convention插件"通常是指遵循一套约定优于配置(Convention over Configuration,简称CoC)原则的工具或框架中的插件部分。这种原则旨在减少开发者需要进行的显式配置工作,通过预设一套标准的...

    struts2-Convention插件使用

    Convention插件还支持基于约定的动作链、结果代码的定制化,允许开发者更高效地管理和控制应用流程。 #### JAR文件中的Actions 插件支持从JAR文件中加载Action,这为模块化和组件化开发提供了便利。 #### 自动...

    Struts2插件convention

    Convention插件的工作原理主要是基于类和方法的命名规则来自动映射URL。例如,如果你有一个名为`UserAction`的类,那么默认情况下,该类将与`/user.action` URL关联。同样,如果类中有一个名为`save`的方法,那么这...

    struts2的Convention插件说明书(中文版)

    Struts2的Convention插件是一种自动化配置工具,从2.1版本...总的来说,Struts2的Convention插件通过约定优于配置的理念,极大地提高了开发效率,降低了维护成本,使得开发者能够更加专注于业务逻辑而不是框架配置。

    Struts2-rest插件(有注释)

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

    struts2的convention配置详解 很全

    4. **注解增强**:除了基于类和方法名的约定,Convention插件还支持使用注解来进一步定制配置。例如,`@Action`注解可以用于明确指定Action的URL,`@Result`注解可以定义自定义的结果类型和视图。 5. **RESTful支持...

    convention-plugin 插件使用说明

    这些配置项分别定义了Action的后缀、是否映射所有URL匹配以及默认的父包名称,从而确保Convention插件能够按照既定规则识别和处理Action。 #### HelloWorld示例解析 让我们通过一个简单的HelloWorld示例,深入了解...

    STRUTS2 Convention零配置

    与之前的Codebehind插件不同,Convention插件更加彻底地摆脱了对配置文件的需求,包括struts.xml以及Annotation等传统配置方式,通过约定而非配置的方式自动完成框架的配置工作。 ### Convention 插件特性详解 ###...

    如何使用struts2的零配置插件convention

    `Convetion`插件是Struts2实现零配置的核心工具,它基于“约定优于配置”的原则工作。 ### 1. Convention 插件简介 从Struts2.1版本开始,`Codebehind`插件被`Convetion`插件取代,以提供更全面的零配置支持。`...

    Struts2约定优于配置

    Struts2 约定优于配置 Struts2 框架中,有一个非常重要的概念,即...Struts2 的约定优于配置可以通过 Convention 插件来实现 Action 路径到 Result 页面路径的自动映射。这个机制可以减少配置的必要性,提高开发效率。

    Struts2 convention

    Struts2 Convention插件是基于Apache Struts2框架的一个组件,它引入了一种约定优于配置(Convention over Configuration)的理念,简化了MVC应用的开发。这个插件在默认情况下可以根据类和方法的名字来自动映射URL...

    convention-plugin

    【Struts2 Convention 插件】 Struts2 Convention 插件是从 ...通过以上介绍,我们可以看到Struts2 Convention插件极大地减少了XML配置,使开发更加便捷。开发者可以专注于业务逻辑,而不用花费大量时间在配置上。

    struts _convention _plugin application

    - Convention插件还支持使用Java注解进一步定制Action的行为,如`@Action`、`@Result`等,可以用来覆盖默认的Action映射和结果配置。 6. **动态方法调用** - 如果Action类没有声明任何方法,Convention插件将尝试...

    struts2-convention-plugin-2.3.32.jar

    Convention插件的核心思想是“约定优于配置”(Convention over Configuration),它允许开发者通过遵循一定的命名规则来减少或甚至省略XML配置文件。这大大提高了开发效率,因为大部分时候,框架可以自动识别并...

    struts2 convention plugin(插件) 测试项目

    1. **约定优于配置**:Conventions插件默认遵循一套规则,例如Action类通常位于src/main/java目录下的com.example.app.actions包中,类名与URL路径对应,如HelloWorldAction对应/hello-world.action。这样,无需显式...

    struts-convention实现零配置

    总的来说,Struts2 Convention插件通过约定优于配置的方式,极大地简化了Struts2应用的开发工作,提高了开发效率,同时也保持了代码的整洁和可维护性。通过合理的命名和注解,开发者可以轻松地创建和管理Action、...

    struts2零配置convention-plugin

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

    Struts2_Convention_Plugin中文文档

    9. **插件集成**:Struts2的其他插件,如Struts2-dojo-plugin或Struts2-json-plugin,可以无缝地与Convention Plugin一起使用,提供更丰富的功能,如Ajax支持和JSON输出。 10. **调试与日志**:在开发过程中,开启...

    简述STRUTS2_Convention零配置

    首先,要启用Convention插件,你需要在项目的WEB-INF/lib目录下添加struts-Convention-plugin-2.1.6.jar文件。然后,框架会自动扫描特定包下的Java类,寻找符合Action条件的类。这些条件包括实现了`...

    Struts2+Convention+Plugin中文文档

    **Convention插件的特性与优势:** 1. **自动Action映射**:Convention插件通过类名和方法名自动推断Action和Action方法,无需在struts.xml中手动配置。 2. **零配置**:大部分情况下,只需编写业务逻辑代码,无需...

Global site tag (gtag.js) - Google Analytics