转载
n 问题:
有时候你需要在应用程序启动时装载一些数据到程序上下文中或执行某些操作。
n 解决方法:
创建一个实现了org.apache.struts.action.PlugIn接口的类文件并在struts-config.xml中设置plug-in元素。以下代码片段显示了一个plug-in生命声明和一个自定义的set-property子元素:
<plug-in className="com.oreilly.strutsckbk.CustomPlugin" >
<set-property property="customData"
value="Hello from the plugin"/>
</plug-in>
n 细节讨论:
Struts提供一个 PlugIn接口能使你在启动应用程序时为你提供自定义的操作。其源代码如下:
package org.apache.struts.action;
import javax.servlet.ServletException;
import org.apache.struts.config.ModuleConfig;
public interface PlugIn {
void destroy();
void init(ActionServlet servlet, ModuleConfig config)
throws ServletException;
}
要实现一个plug-in,你只需要实现这个接口并在struts-config.xml文件的中声明plug-in元素。子类必须实现方法destroy()和init()。init()在ActionServlet启动时实例化plug-in过程中执行,当ActionServlet结束时执行destroy(),一般情况下是应用程序关闭。通过在plug-in元素中设置set-property元素,可以向PlugIn类传递参数。
所有set-property元素都在init()方法执行之前被执行,这样就可以在init()方法中使用这些由set-property设置的参数了。
Struts将ActionServlet的引用和ModuleConfig参数传递给init()方法。ActionServlet使的init()方法中可以将数据保存到ServletContext中。ActionServlet还可以使你能够访问更多的J2EE组件如java sources、message队列等。ModuleConfig可以让你访问当前的模块配置信息。
n 举例说明:
你需要定义一个plug-in记录应用程序何时运行的及运行了多久。
TimeTracker.java:
package com.yourcompany.struts.plugin;
import java.util.Date;
public class TimeTracker {
private long startUpTimeMillis;
private Date startedOn;
public TimeTracker( ) {
startUpTimeMillis = System.currentTimeMillis( );
startedOn = new Date( );
}
public long getUptime( ) {
return System.currentTimeMillis( ) - startUpTimeMillis;
}
public Date getStartedOn( ) {
return startedOn;
}
}
创建一个PlugIn子类TimeTrackerPlugin。TimeTrackerPlugi将TimeTracker保存在ServletContext中,键名由由plug-in元素的set-propery子元素指定:
TimeTrackerPlugin.java:
package com.yourcompany.struts.plugin;
import javax.servlet.ServletException;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
public class TimeTrackerPlugin implements PlugIn {
private String contextKey;
public void setContextKey(String key) {
this.contextKey = key;
}
public void init(ActionServlet servlet, ModuleConfig conf)
throws ServletException {
servlet.getServletContext( ).setAttribute(contextKey, new TimeTracker( ));
}
public void destroy( ) {
}
}
struts-config.xml:
<plug-in className="com.yourcompany.struts.plugin.TimeTrackerPlugin">
<set-property property="contextKey" value="timeTracker"/>
</plug-in>
你可以使用如下的JSP片段访问TimTracker,并显示关于应用程序运行时间的信息。
n 你也可以在web.xml中配置一个Servlet实现plug-in的功能将load-on-startup值设置为一个较低的值如1。他将在应用程序启动是自动加载并执行。容器在实例化Servlet后将调用此Servlet的init()方法。比较而言,使用plug-in有更多的优势:
1. 一般情况下Struts应用程序设置好web.xml后,在开发过程中不许要改动他的内容。在web.xml中增加servlet意味着增加了一个维护对象。
2. plug-in接口提供了访问struts应用程序特有的信息的能力。
plug-in的声明周期跟ActionSerlvet的生命周期一致。他可以保证你的struts应用程序需要的信息可用。
分享到:
相关推荐
描述中的"netbeans7.2_struts2_plugin插件"进一步确认了我们的主题,即在NetBeans 7.2中使用的Struts2插件。通过安装这个插件,开发者可以在IDE内部直接进行Struts2相关的操作,无需离开熟悉的开发环境,从而提高...
struts2-json-plugin,Struts JSON插件
Struts2 Convention Plugin是Apache Struts框架的一个重要组成部分,它为开发者提供了一种更为便捷的配置方式,使得在Struts2应用中实现MVC模式变得更加简单。这个测试项目旨在帮助我们理解和掌握如何在实际开发中...
这个插件主要的功能是让Struts2应用程序能够轻松地处理JSON(JavaScript Object Notation)数据格式,使得Web应用可以方便地进行JSON序列化和反序列化,从而实现与前端的Ajax交互。 Struts2是一个基于Model-View-...
Struts2 Convention Plugin 是从 Struts2.1 版本开始引入的一个插件,它的主要目标是实现 Struts2 框架的零配置。通过约定优于配置的原则,开发者可以更加专注于业务逻辑,减少大量的 XML 配置工作。以下是 ...
Struts2-Spring-Plugin-2.3.4.jar 是一个专门为 Struts 2 框架和 Spring 框架整合而设计的插件,主要用于处理 Struts 2 和 Spring 之间的集成问题。在Java Web开发中,这两个框架经常一起使用,Spring 提供了依赖...
Struts2-Spring-Plugin-2.2.3.jar 是一个专门为 Struts2 框架与 Spring 框架整合而设计的插件。在Java Web开发中,这两个框架都极其常见,Struts2 提供了MVC(模型-视图-控制器)架构模式,而Spring则是一个强大的...
Struts2-dojo-plugin-2.2.1.jar 是一个针对Apache Struts2框架的扩展插件,主要用于增强Struts2应用的用户界面交互性,特别是通过集成Dojo JavaScript库来提供丰富的AJAX功能和用户体验。这个插件是Struts2与Dojo ...
Struts2提供了一个名为`struts-ssl-plugin`的插件,帮助开发者轻松地在Struts2应用中集成HTTPS支持。 **集成步骤** 1. **添加依赖** 首先,你需要将`struts-ssl-plugin`的JAR文件添加到项目的类路径中。如果使用...
Struts2-Spring-Plugin-2.2.1.jar 是一个专门为 Struts2 框架与 Spring 框架集成而设计的插件。这个插件的主要目的是简化在基于Struts2的应用程序中整合Spring的功能,如依赖注入(DI)、AOP(面向切面编程)以及...
1. **Struts2 jQuery插件安装**:首先,你需要将Struts2 jQuery插件的JAR文件添加到项目的类路径中,通常这包括`struts2-jquery-plugin-x.x.x.jar`和`struts2-jquery-ui-x.x.x.jar`。同时,还需在Struts2的配置文件`...
首先,我们来看`struts-json-plugin-2.1.8.jar`,这是Struts2的JSON插件,它允许Struts2的动作类直接返回JSON格式的数据,方便前端进行Ajax请求处理。该插件在2.1.8版本中修复了若干bug,并提供了对JSON输出的支持。...
在给定的压缩包文件中,我们关注的是"struts2-spring-plugin-2.2.1.jar",这是一个插件,它将Struts2框架与Spring框架集成。 Struts2 Spring Plugin是Struts2框架的一个重要组成部分,它的主要作用是允许开发者在...
最新的struts2-jquery-plugin插件3.3.3,包括jquery-ui和grid,使用标签实现。
Struts2 JSON Plugin是Apache Struts框架的一个扩展插件,主要功能是为Struts2提供JSON(JavaScript Object Notation)支持。JSON是一种轻量级的数据交换格式,它使得客户端(通常为JavaScript)与服务器端之间进行...
`struts2-json-plugin`是Struts2的一个插件,它使得Struts2能够处理JSON请求和响应,无需额外的配置或库。这个插件不仅包含了源码,还包含了必要的配置文件和类,使得开发者可以深入理解其工作原理并进行自定义扩展...
`struts2-json-plugin-2.1.8.1.jar` 则是Struts 2框架的一个插件,主要用于增强Struts 2对JSON的支持。Struts 2是一款非常流行的MVC(Model-View-Controller)框架,用于构建企业级的Java Web应用程序。这个插件允许...
Struts2 Dojo Plugin是Apache Struts框架的一个扩展,它为开发者提供了丰富的AJAX功能,以便在基于Struts2的应用程序中实现动态、交互式的用户界面。这个版本号"2.3.15.3"表明这是一个较旧的版本,但仍然在许多现有...
Struts2 JSON Plugin是Apache Struts框架的一个扩展插件,主要功能是支持Struts2应用程序与JSON(JavaScript Object Notation)格式的数据进行交互。JSON是一种轻量级的数据交换格式,广泛用于Web服务和AJAX...