随笔 - 71  文章 - 15  trackbacks - 0
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

因为口渴,上帝创造了水;
因为黑暗,上帝创造了火;
因为我需要朋友,所以上帝让你来到我身边
Click for Shaanxi xi'an, Shaanxi Forecast
╱◥█◣
  |田|田|
╬╬╬╬╬╬╬╬╬╬╬
If only I have such a house!
〖总在爬山 所以艰辛〗
Email:myesjoy@yahoo.com.cn
NickName:yesjoy
MSN:myesjoy@hotmail.com
QQ:150230516

〖总在寻梦 所以苦痛〗

常用链接

留言簿(3)

随笔分类

随笔档案

文章分类

文章档案

Hibernate在线

Java友情

Java认证

linux经典

OA系统

Spring在线

Structs在线

专家专栏

企业信息化

大型设备共享系统

工作流

工作流产品

网上购书

搜索

  •  

最新评论

阅读排行榜

评论排行榜

问题描述:

< plug - in className = " org.apache.struts.validator.ValidatorPlugIn " >
    
< set - property property = " pathnames "  value = " /WEB-INF/validator-rules.xml,/WEB-INF/validator/validation.xml "   />
    
< set - property property = " stopOnFirstError "  value = " true "   />
  
</ plug - in >
其中
< set - property property = " stopOnFirstError "  value = " true "   /> 是什么意思???

再比如:

     < plug - in className = " org.apache.struts.validator.ValidatorPlugIn " >
        
< set - property property = " pathnames "
            value
= "  /WEB-INF/validator-rules.xml,/WEB-INF/validation.xml "   />
    
</ plug - in >
    
< plug - in
        className
= " org.springframework.web.struts.ContextLoaderPlugIn " >
        
< set - property property = " contextConfigLocation "
            value
= " /WEB-INF/classes/applicationContext.xml "   />
    
</ plug - in >

转贴来自:http://www.xdfbc.net/program/2007/3/22/5411908.htm

创建一个实现了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应用程序需要的信息可用。


 

posted on 2007-03-26 15:10 ★yesjoy★ 阅读(1260) 评论(0)  编辑  收藏 所属分类: Structs学习

只有注册用户登录后才能发表评论。


网站导航: