Struts2并没有求大求全,企图把所有的功能都包含进来,而是设计了一个灵活、可扩展的插件体系,让所有的人都可以以做插件的方式,为Struts2添加新的功能,这也是Struts2非常吸引人的地方之一。
来简单的认识一下Struts2的插件。打开Struts2 下载包中的lib目录struts-2.1.8.1\lib,会发现,这里面以struts2作为文件名开头的文件可以被分成两类,一类是Struts2的核心包,比如struts2-core-2.1.8.1.jar;而其他的都叫struts2-xxx-plugin-2.1.8.1.jar,很显然,后者都是Struts2的插件。
这些插件的存在形式就是普通的jar包,看起来和其他jar包也没什么区别,但是,如果打开来看,就发现内藏玄机了。打开看看,会发现,只要是插件的jar包,其根目录下都有一个叫struts-plugin.xml的文件,里面有这个插件相应的配置。
以struts2-jfreechart-plugin-2.1.8.1.jar中的struts-plugin.xml为例来观察一下,示例如下:
java代码:
- <?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>
- <package name="jfreechart-default" extends="struts-default">
- <result-types>
- <result-type name="chart" class="org.apache.struts2.dispatcher.ChartResult">
- <param name="height">150</param>
- <param name="width">200</param>
- </result-type>
- </result-types>
- </package>
- </struts>
仔细看一下,根元素为<struts>,<struts>元素中有一个<package>元素,而<package>元素中有一个<result-types>子元素,而<result-types>子元素中有一个<result-type>子元素。
好像很熟悉啊。没错,其实这个struts-plugin.xml实际上就是个struts.xml,因此我们也可以在自己的配置文件里这样写。
至此,可以看到Struts2插件的存在方式:
- 命名规则为struts2-xxx-plugin-版本号.jar
- 存在形式就是一个普通的jar包。
- 这个jar包的根目录必须存在一个叫struts-plugin.xml,而其本质就是一个struts.xml。
而使用Struts2插件的时候,只需要把这个jar包拷贝到web工程的编译路径上即可。
18.2.2 Struts2插件的加载顺序和作用
在启动web容器的时候,Struts2有一个运行时配置,它会按照以下顺序加载配置文件:
- struts-default.xml这个文件应该在核心包中,也就是struts2-core-版本号.jar中,通常有一个。
- struts-plugin.xml这种文件应该在所有的插件包中,也就是以struts2-xxx-plugin-版本号.jar,通常会有多个。
- struts.xml这个文件应该在我们的web应用的classpath根目录上有一个。
通常情况下,插件的配置文件优先于我们的配置文件加载,因此,我们可以像引用struts-default 包一样来引用struts-plugin.xml文件中的其他包。
比如,有了上面的那个JFreeChart插件的struts-plugin.xml后,我们的<package>元素只要继承插件中的包,就可以任意使用这个包内的任意资源,如下示例:
java代码:
- <package name="sample" namespace="/sample" extends="jfreechart-default">
- <action name="sampleAction" class="cn.javass.action.SampleAction">
- <result type="chart"/>
- </action>
- </package>
这里注意两个要点:
- 我们的包继承了jfreechart-default包,因此,我们的包中可以随意使用jfreechart-default包中的东西,在上面的例子中定义的<result type=”chart”>,就使用了jfreechart-default包中定义的的<result-type name=” chart”>。
- Struts2的包在继承关系上是递归的, jfreechart-default包又继承自struts-default包,因此,我们的sample包也可以自由使用struts-default的东西。
插件就是以这种声明新包,然后在新包中声明新功能的方式,来简洁的加入到应用中,而且在插件中还可以通过声明来替换struts-default包中的默认行为。
私塾在线网站原创《研磨struts2》系列
转自请注明出处:【http://sishuok.com/forum/blogPost/list/0/4169.html】
欢迎访问http://sishuok.com获取更多内容
分享到:
相关推荐
Struts2和JFreeChart是两个在Java Web开发中广泛使用的开源库。Struts2是一个强大的MVC(Model-View-Controller)框架,用于构建可维护性和可扩展性极高的Web应用程序,而JFreeChart则是一个用于生成高质量图表的...
Struts2和JFreeChart是两个在Java Web开发中广泛使用的框架和技术。Struts2是一个强大的MVC(Model-View-Controller)框架,用于构建结构化的Web应用程序,而JFreeChart是一个开源图表库,能够生成各种高质量的图表...
Struts2和JFreeChart是两个在Java Web开发中广泛使用的框架。Struts2作为MVC(模型-视图-控制器)架构的一部分,主要用于处理HTTP请求和管理业务逻辑,而JFreeChart则是一个强大的库,用于创建各种图表,如线图、...
以上就是关于“Struts2结合JFreechart”的基本知识点。通过这种方式,开发者可以在Struts2驱动的Web应用中轻松实现数据的可视化,提升用户体验。这个资源包中的代码示例、jar包和说明文档将帮助你快速理解和实践这个...
Struts2和JFreeChart是两个在Java开发中常用的库。Struts2是一个基于MVC设计模式的Web应用框架,用于构建动态、数据驱动的Java Web应用,而JFreeChart则是一个强大的图表生成库,可以生成各种类型的图表,如柱状图、...
在企业级应用中,通常需要生成各种报表和统计图表来展示数据,而Struts2和JFreeChart的结合就提供了解决这一需求的有效途径。 Struts2是一个基于MVC设计模式的Web应用框架,它简化了Java Servlet和JavaServer Pages...
总的来说,JFreeChart和Struts2的结合使用,使得Java开发者能够方便地在Web应用中实现各种复杂的图表功能,从而提升数据可视化的质量和用户体验。这五种实践方法覆盖了从静态展示到动态交互,从直接输出到异步加载的...
"struts2-jfreechart-plugin-2.1.6.jar.zip_jfreechart struts2_jfree" 这个标题表明这是一个关于Struts2与JFreeChart结合使用的插件,版本为2.1.6。这个插件简化了在Struts2应用中使用JFreeChart的过程,使得开发者...
### 知识点一:Struts2入门(MVC HelloWorld) #### 1.1 Struts2简介 ...以上就是关于“研磨Struts2”的主要知识点梳理,通过深入学习这些内容,开发者可以更好地掌握Struts2框架的核心技术和实践技巧。
结合Struts2和JFreeChart,开发者可以创建交互式、数据丰富的Web应用,将后台处理的数据以图形方式展示给用户,提升用户体验。下面我们将深入探讨如何在Struts2框架中集成JFreeChart,并通过一个实际的运行实例来...
综上所述,"JFreeChart(Struts1+jFreeChart)"的整合是Java Web开发中的一个典型应用场景,它结合了Struts1的MVC架构优势和JFreeChart的图表绘制能力,实现了动态数据的可视化展示。在实际项目中,还需要考虑如何优化...
Struts2是一个非常流行的Java Web框架,用于构建可维护、结构清晰且易于扩展的企业级应用程序。JFreeChart则是一个强大的Java图表库,可以生成多种类型的图表,如柱状图、饼图、线图等,非常适合在报表系统中展示...
第10章 Struts 2的标签库,第11章 Struts 2的Ajax支持,第12章 使用FreeMarker充当表现层,第13章 整合Spring,第14章 整合JSF,第15章 整合SiteMesh,第16章 整合JasperReports,第17章 整合JFreeChart,第18章 ...
这是一个获取用户信息的投票系统,包含需求及代码,可以了解投票系统的基本需求,如何分析和设计数据库、使用JSP +JavaBean+Struts2+JDBC+JFreeChart进行开发、学会MySQL数据库的基本使用、使用JFreeChart画柱状图、...
Struts2是一个强大的Java web应用程序框架,它提供了一种组织和控制MVC(模型-视图-控制器)架构的方式,使得...通过学习和实践这个例子,你可以熟练掌握Struts2与JFreeChart的结合,提升你的Web应用的数据可视化能力。
将JFreeChart与Struts2整合,可以将动态生成的图表展示在Web页面上,为用户提供直观的数据展示。 首先,我们需要理解JFreeChart的基本用法。JFreeChart提供了丰富的API来创建和定制图表。例如,要创建一个简单的...
struts2整合JFreechart: jcommon-1.0.16.jar jfreechart-1.0.13.jar struts2-jfreechart-plugin-2.0.11.jar 导成图片操作说明
`strugs2-jfreechart-plugin`插件结合了这两者的优点,为开发者提供了一种便捷的方式来生成图表并嵌入到Struts2应用中。有时为了满足特定的需求或修复某些bug,我们可能需要对这个插件进行定制化修改。 #### 二、...
struts2-jfreechart-plugin-2.1.8.1.jar
它们提供了 JFreeChart 图表绘制功能以及 Struts2 的插件支持。 2. **Action 类**: 在 Action 类中,你需要创建方法来生成数据集和图表。例如,`getDataSet()` 方法用于构建图表所需的数据,这里使用了 `...