`
fengfeng925
  • 浏览: 107091 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基于Struts2的Convention插件打造零配置的项目

阅读更多
    使用Struts2的convention插件,可以打造零配置的项目,这样做有一个好处,可以统一约定大于配置的开发规范,同时,省却了每个程序员在负责不同模块时都得维护自己的struts配置文件,在包含到主struts配置文件中时,如果有一个出了错,那么可能整个项目都运行不起来。这里就做一个例子讲解一下convention插件是如何统一管理项目的配置的。
     首先建立一个web项目,我这里就叫做convention,接着拷贝struts的jar包到相应的lib目录下,如图所示


接下来要配置struts的配置文件,配置如下
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<constant name="struts.ui.theme" value="simple" />
	<!-- 定义默认的访问后缀 -->
	<constant name="struts.action.extension" value="do" />
	<!-- 开启动态方法调用 -->
	<constant name="struts.enable.DynamicMethodInvocation" value="true" />
	<!-- 默认对以action,web的包极其子包起作用 -->
	<constant name="struts.convention.package.locators" value="action, web" />
	<!-- 设定默认的字符编码 -->
	<constant name="struts.i18n.encoding" value="UTF-8"/>
	
	<!-- 可以自定义页面的存放路径 -->
	<!-- <constant name="struts.convention.result.path" value="/WEB-INF/page" />  -->
	
	
	<!-- 以下两项在生产模式中要去掉 -->
	<constant name="struts.devMode" value="true"/> 
	<constant name="struts.convention.classes.reload" value="true" />
	
</struts>


这里要注意的是,如果想用convention插件进行开发,则必须要开启动态方法调用。

下面我建立一个类,完整类名称为
com.bj58.action.user.UserListAction
那么,这个UserListAction默认的包命名空间就是"/user"
下面让我们来看一下UserListAction类的代码
@Namespace("/user")
@SuppressWarnings("serial")
public class UserListAction extends ActionSupport {

	public String execute() {
		return "success";
	}
}

@Namespace定义了这个类的包命名空间,相对应的,默认使用convention插件的时候,页面结果都是存放在/WEB-INF/content下的,如果你这个action类的包命名空间是/user,
那么你要在content文件夹下新建立个user文件夹,如图


那么,对应这个action的页面都放在里面就可以了
默认Action如果是两个单词以上的,对应的action名称就要以"-"为中划线分割开,
那么这个Action对应的页面就是user-list.jsp
好了这个时候,我们启动tomcat,在浏览器里输入
http://localhost:8080/user/user-list.do就可以访问到userList页面了,这个我的根路径定义为"/"
如果你默认是convention,那么你的路径要加入项目名称。

    接下来,再建立一个类,我叫它UserManageAction,用来做User管理的,类的代码如下:
@Results({
	  @Result(name="message", location="/WEB-INF/content/common/message.jsp")
	})
@Namespace("/user")
@SuppressWarnings("serial")
public class UserManageAction extends ActionSupport {

	@Action(value = "/user/bar", results = { @Result(name = "add", location = "/another/url.do", type = "redirect") })
	public String addUI() {
		return "add";
	}
	
	public String add() {
		return "message";
	}
	
	public String editUI() {
		return "edit";
	}
	
	public String edit() {
		return "message";
	}
	
	@Action(value="/another/url")
	public String another() {
		return "another";
	}
}


这个类里我定义了增加和修改的方法,需要注意的是,你的相对应的jsp页面的名称就不一样了,比如,addUI方法,是打开一个添加用户的页面,它默认走的是"add",那么,你的页面就要起名字为user-manage-add.jsp,你在浏览器里访问的时候,就要这么访问了
http://localhost:8080/user/user-manage!addUI.do
那么就将打开你的添加页面了。
这里的
@Results({
	  @Result(name="message", location="/WEB-INF/content/common/message.jsp")
	})

定义了全局要访问的页面,比如你添加或者修改成功后,要跳转到一个公共的页面。
最后再说下@Action注解,这个注解,是定义一个url路径,比如对于添加方法,如果我直接访问http://localhost:8080/user/bar.do
那么将直接跳转到another方法对应的页面去,就是content下面的another文件夹下的url.jsp页面了。
这就是初步的使用convention打造基于零配置的小示例。时间仓促,还有很多不完善的地方,欢迎大家批评指正,呵呵。
  • 大小: 17.5 KB
  • 大小: 5.2 KB
分享到:
评论
9 楼 flamelaird 2010-12-14  
在没有良好的规范下 零配置只会导致项目更混乱!
8 楼 bingoohuang 2010-12-12  
使用Convention插件,有一个问题,就是Action如果是在单独的JAVA工程中,然后发布的时候,使用JAR包形式,Convention不能解析类路径中的零配置Action。这一点很让人不爽,最后决定放弃这个插件。
7 楼 object_object 2010-12-11  
个人感觉,无论是spring 还是 struts2的annotation配置可读性没那么好,还是使用xml 清晰明了,一看就知道 相对简单
6 楼 javaso 2010-12-10  
在jboss下跑,就是痛苦的开始!零配置非零配置!
5 楼 mydev.cn 2010-12-10  
glamey 写道
感觉好麻烦的啊,还不如直接写配置文件呢。

4 楼 glamey 2010-12-10  
感觉好麻烦的啊,还不如直接写配置文件呢。
3 楼 rekoe.net 2010-12-10  
这支持freemarker 么
2 楼 george 2010-12-10  
fnet 写道
相对而言,Spring3 MVC的配置更少,而且关键一点:更灵活。。。

举例说明?
1 楼 fnet 2010-12-09  
相对而言,Spring3 MVC的配置更少,而且关键一点:更灵活。。。

相关推荐

    STRUTS2 Convention零配置

    Struts2 Convention插件提供了一种全新的、更为简洁的零配置方式,它通过约定而非配置的方式来管理Action及其结果视图,大大简化了Struts2应用的开发流程。通过上述配置和使用方法,开发者可以更高效地构建Web应用...

    简述STRUTS2_Convention零配置

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

    Struts2插件convention

    - **现有项目迁移简化**:如果项目需要从其他框架迁移到Struts2,利用Convention插件的特性能够简化迁移过程中的配置工作,加快迁移速度。 - **敏捷开发实践**:在敏捷开发环境中,时间是非常宝贵的资源。...

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

    Struts2的Convention插件是一种自动化配置工具,从2.1版本开始引入,旨在减少XML配置,实现Struts2应用的零配置或者最少配置。该插件通过一系列预定义的命名规则和约定,自动解析和映射Action、结果页面、拦截器等...

    Struts-Convention实现零配置,可直接部署运行

    5. **部署**:在Struts-Convention模式下,一个简单的Struts2项目只需要包含必要的库文件、Action类和视图资源,无需struts.xml配置文件即可直接部署到服务器上运行。 在提供的项目中,可能包含了以下内容: - `...

    struts2采用convention-plugin实现零配置

    Struts2是一个流行的Java Web应用程序...Convention Plugin是Struts2的一个插件,它基于“约定优于配置”的原则,自动地为Action类和结果页面建立映射,从而极大地减少了手动配置的需求。通过自动探测和推理,Conventio

    struts-convention实现零配置

    Struts2 Convention 插件是Struts2框架的一个重要组件,自版本2.1起,它取代了Codebehind Plugin,旨在实现Struts2的零配置目标,简化开发流程。这个插件通过遵循一系列预定义的命名约定,自动地映射Action、结果...

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

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

    struts2的convention配置详解 很全

    Convention插件是Struts2提供的一种自动化配置方式,它旨在减少XML配置文件的数量,提高开发效率。这篇详尽的指南将深入讲解Struts2的Convention配置,让你更好地理解和应用这一特性。 首先,了解什么是Conventions...

    struts2零配置convention-plugin

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

    Struts2零配置

    2. **零配置**:在启用Convention插件后,开发者可以省略大部分原本需要在`struts.xml`文件中定义的配置项。 3. **插件集成**:安装Convention插件非常简单,只需将相应的JAR包复制到项目的`WEB-INF/lib`目录下,...

    struts2 convention plugin(插件) 测试项目

    Struts2 Convention Plugin是Apache Struts框架的一个重要组成部分,它为开发者提供了一种更为便捷的配置方式,使得在Struts2应用中实现MVC模式变得更加简单。这个测试项目旨在帮助我们理解和掌握如何在实际开发中...

    struts2-Convention插件使用

    自Struts2.1版本起,Convention插件被引入,旨在替代原有的Codebehind插件,实现框架内的零配置理念。这一插件的设计思想围绕着减少XML配置的依赖,通过代码结构与命名规则自动推断应用程序的行为,从而简化开发流程...

    Struts2 convention

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

    MyFramework - struts2 零配置:convention

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

    Struts2 Convention Plugin中文文档 Annotion

    Struts2 Convention Plugin 是从 Struts2.1 版本开始引入的一个插件,它的主要目标是实现 Struts2 框架的零配置。通过约定优于配置的原则,开发者可以更加专注于业务逻辑,减少大量的 XML 配置工作。以下是 ...

    Struts采用convention-plugin实现零配置

    通过使用Convention-Plugin,Struts2框架实现了零配置的目标,极大地简化了Web应用的开发过程。开发人员可以将更多的精力集中在业务逻辑上,而不是繁琐的配置细节上。这对于提高开发效率、减少出错率具有重要意义。...

Global site tag (gtag.js) - Google Analytics