使用Struts的PlugIn進(jìn)行Web應(yīng)用的擴(kuò)展
Struts提供了PlugIn的方式來擴(kuò)展Struts的功能,這種方式的擴(kuò)展適合于實(shí)現(xiàn)Struts啟動或者
停止時需要執(zhí)行的某些特殊處理的情況,可以方便地實(shí)現(xiàn)Web應(yīng)用啟動時的系統(tǒng)初始化工作以及在Web
應(yīng)用卸載時的資源釋放工作,它不能實(shí)現(xiàn)針對每個用戶請求的處理功能.
開發(fā)一個Struts的PlugIn需要以下兩個步驟:
(1)實(shí)現(xiàn)Struts定義的PlugIn接口,其中的init()方法將在應(yīng)用啟動時被調(diào)用,而destory()方法將在服務(wù)
終止時被調(diào)用.
(2)在Struts的配置文件中配置該P(yáng)lugIn以及設(shè)置的初始化參數(shù).Struts還允許為PlugIn定義一些參數(shù),
在默認(rèn)的情況下,這些參數(shù)必須作為PlugIn屬性的形式出現(xiàn),并且為每個參數(shù)提供符合javabean規(guī)范
的setter方法,而這些參數(shù)在struts的配置文件中進(jìn)行.
基本的配置形式如下:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>
下面是一個例子.在服務(wù)器啟動和停止時輸出系統(tǒng)的時間.
MyPlugIn.java
package dgut.ke.struts.plugIn;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.servlet.ServletException;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
public class MyPlugIn implements PlugIn {
private String timePattern;
public String getTimePattern() {
return timePattern;
}
public void setTimePattern(String timePattern) {
this.timePattern = timePattern;
}
public void destroy() {
// TODO 自動生成方法存根
DateFormat df = new SimpleDateFormat(getTimePattern());
Calendar rightNow = Calendar.getInstance();
Date now = rightNow.getTime();
System.out.println("The service shutdown at --> "+df.format(now));
}
public void init(ActionServlet actionServlet, ModuleConfig moduleConfig)
throws ServletException {
DateFormat df = new SimpleDateFormat(getTimePattern());
Calendar rightNow = Calendar.getInstance();
Date now = rightNow.getTime();
System.out.println("The service start at ---> "+df.format(now));
}
}
相關(guān)配置
<plug-in className="dgut.ke.struts.plugIn.MyPlugIn">
<set-property property="timePattern" value="yyyy-MM-dd" />
</plug-in>