Struts是一个非常优秀的MVC框架,虽然现在Struts1.x已经显得老了,但是,还是有很多企业继续在使用 Struts1.x,Struts2.x估计还要再等一段时间后,才能成为主流。
Struts1.x的Plugin功能做得非常好, 像我们一直在使用的Struts Validation,Struts Tiles都是基于插件方式对Struts进行扩展。之前在做OA系统的时候,就遇到这样一个比较麻烦的业务问题,用户需要我们能提供一个预警监控的功 能,当待办时间离结构还有半小时时候,系统会自动发送一条短信给待办人员。因为当时还没有应用到Spring,还没有应用到Opensymphony做定 时服务的组件Quarz,我们当时是用的是Timer来做定时服务。但问题是Timer应该在什么时候开始启动?后来就决定使用Struts Plugin来实现。
当我们觉得Struts功能不够用的时候,我们可以使用Struts的PlugIn框架进行扩展。具体的实现细节如下:
第 一、开发一个发送邮件的Struts PlugIn
程序代码
package zizz.strutsplugin;
import java.util.Timer;
import java.util.TimerTask;
import javax.servlet.ServletException;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
/**
* 专门用来发送邮件的插件
* @author zizz at manbuchina
*
*/
public class EmailPlugin implements PlugIn{
/**
* Struts初始化的同时,会自动初始化插件.
*/
public void init(ActionServlet actionServlet, ModuleConfig config) throws ServletException {
Timer timer = new Timer();
//每三秒钟触发一次,调用EmailSenderTrigger的run方法.
timer.schedule(new EmailSenderTrigger(), 0,3000);
}
/**
* 上下文被Destroy的时候,会调用该方法,释放相应的资源.
*/
public void destroy() {
}
}
/**
* 邮件发送的定时任务
* @author zizz at manbuchina
*
*/
class EmailSenderTrigger extends TimerTask{
/**
* TimerTask需要执行的内容
*/
public void run() {
checkNewEmail();
sendEmail();
}
public void checkNewEmail(){
System.out.println("检查新的未发送 邮件");
}
public void sendEmail(){
System.out.println("发送未发送邮件");
}
}
第二步,配置Struts PlugIn
程序代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans />
<global-exceptions />
<global-forwards />
<action-mappings />
<message-resources parameter="zizz.strutsplugin.ApplicationResources" />
<!-- 配置自定义的PlugIn -->
<plug-in className="zizz.strutsplugin.EmailPlugin">
</plug-in>
</struts-config>
第 三步,发布应用程序,查看系统运行结果
程序代码
检查新的未发送邮件
发送未发送 邮件
检查新的未发送邮件
发送未发送邮件
系统每隔三秒钟,便会检查一 下邮件及发送待发邮件
转自 :
http://www.suneca.com[size=medium][/size]
分享到:
相关推荐
struts2-json-plugin,Struts JSON插件
赠送jar包:struts2-json-plugin-2.3.24.jar; 赠送原API文档:struts2-json-plugin-2.3.24-javadoc.jar; 赠送源代码:struts2-json-plugin-2.3.24-sources.jar; 赠送Maven依赖信息文件:struts2-json-plugin-...
core-2.5.10.1.jar,struts2-jfreechart-plugin-2.5.10.1.jar,struts2-json-plugin-2.5.10.1.jar,struts2-junit-plugin-2.5.10.1.jar,struts2-bean-validation-plugin-2.5.10.1.jar,struts2-cdi-plugin-...
struts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jarstruts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jar
struts2-ssl-plugin-1.2.1.jar
struts2 json plugin jar包
struts2-convention-plugin-2.3.32
struts2-dojo-plugin-2.1.0的jar包,可以再struts中使用dojo......
struts2-dojo-plugin-2.2.1.jar, 直接导入到Struts2项目里即可,注意版本。
最新struts2-struts1-plugin-2.1.8.1.jar
struts2 spring plugin 2.3.32,用于漏洞修复
struts2-jquery-plugin-3.1.0.jar
struts2整合json的插件struts2-json-plugin源码,不是jar包
struts2-dojo-plugin-2.3.4 jar 日期控件的jar包 需要的自行下载
从struts2.1版本开始,Convention Plugin作为替换替换Codebehind Plugin来实现Struts2的零配置。 • 包命名习惯来指定Action位置 • 命名习惯制定结果(支持JSP,FreeMarker等)路径 • 类名到URL的约定转换 • 包名...
struts2-dojo-plugin-2.3.15.3.jar.zip
struts2-jquery-plugin-2.0.0 struts2-jquery-plugin-2.0.0 struts2-jquery-plugin-2.0.0
struts2-convention-plugin-2.3.24.1
struts2-convention-plugin-2.3.15.1.jar
struts2-spring-plugin-2.0.6.jar