隨筆 - 71  文章 - 15  trackbacks - 0
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          因?yàn)榭诳剩系蹌?chuàng)造了水;
          因?yàn)楹诎担系蹌?chuàng)造了火;
          因?yàn)槲倚枰笥眩陨系圩屇銇?lái)到我身邊
          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

          〖總在尋夢(mèng) 所以苦痛〗

          常用鏈接

          留言簿(3)

          隨筆分類(lèi)

          隨筆檔案

          文章分類(lèi)

          文章檔案

          Hibernate在線

          Java友情

          Java認(rèn)證

          linux經(jīng)典

          OA系統(tǒng)

          Spring在線

          Structs在線

          專(zhuān)家專(zhuān)欄

          企業(yè)信息化

          大型設(shè)備共享系統(tǒng)

          工作流

          工作流產(chǎn)品

          網(wǎng)上購(gòu)書(shū)

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          問(wèn)題描述:

          < 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 >

          轉(zhuǎn)貼來(lái)自:http://www.xdfbc.net/program/2007/3/22/5411908.htm

          創(chuàng)建一個(gè)實(shí)現(xiàn)了org.apache.struts.action.PlugIn接口的類(lèi)文件并在struts - config.xml中設(shè)置plug - in元素。以下代碼片段顯示了一個(gè)plug - in生命聲明和一個(gè)自定義的set - property子元素:

          < plug - in?className = " com.oreilly.strutsckbk.CustomPlugin " ? >

          ??
          < set - property?property = " customData "

          ???????????????????value
          = " Hello?from?the?plugin " />

          </ plug - in >

          n???細(xì)節(jié)討論:

          Struts提供一個(gè)?PlugIn接口能使你在啟動(dòng)應(yīng)用程序時(shí)為你提供自定義的操作。其源代碼如下:

          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;

          }


          要實(shí)現(xiàn)一個(gè)plug
          - in,你只需要實(shí)現(xiàn)這個(gè)接口并在struts - config.xml文件的中聲明plug - in元素。子類(lèi)必須實(shí)現(xiàn)方法destroy()和init()。init()在ActionServlet啟動(dòng)時(shí)實(shí)例化plug - in過(guò)程中執(zhí)行,當(dāng)ActionServlet結(jié)束時(shí)執(zhí)行destroy(),一般情況下是應(yīng)用程序關(guān)閉。通過(guò)在plug - in元素中設(shè)置set - property元素,可以向PlugIn類(lèi)傳遞參數(shù)。

          所有set
          - property元素都在init()方法執(zhí)行之前被執(zhí)行,這樣就可以在init()方法中使用這些由set - property設(shè)置的參數(shù)了。

          Struts將ActionServlet的引用和ModuleConfig參數(shù)傳遞給init()方法。ActionServlet使的init()方法中可以將數(shù)據(jù)保存到ServletContext中。ActionServlet還可以使你能夠訪問(wèn)更多的J2EE組件如java?sources、message隊(duì)列等。ModuleConfig可以讓你訪問(wèn)當(dāng)前的模塊配置信息。

          n???舉例說(shuō)明:

          你需要定義一個(gè)plug
          - in記錄應(yīng)用程序何時(shí)運(yùn)行的及運(yùn)行了多久。

          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;

          ??}


          }


          創(chuàng)建一個(gè)PlugIn子類(lèi)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片段訪問(wèn)TimTracker,并顯示關(guān)于應(yīng)用程序運(yùn)行時(shí)間的信息。

          ?

          n???你也可以在web.xml中配置一個(gè)Servlet實(shí)現(xiàn)plug
          - in的功能將load - on - startup值設(shè)置為一個(gè)較低的值如1。他將在應(yīng)用程序啟動(dòng)是自動(dòng)加載并執(zhí)行。容器在實(shí)例化Servlet后將調(diào)用此Servlet的init()方法。比較而言,使用plug - in有更多的優(yōu)勢(shì):

          1 .??一般情況下Struts應(yīng)用程序設(shè)置好web.xml后,在開(kāi)發(fā)過(guò)程中不許要改動(dòng)他的內(nèi)容。在web.xml中增加servlet意味著增加了一個(gè)維護(hù)對(duì)象。

          2 .??plug - in接口提供了訪問(wèn)struts應(yīng)用程序特有的信息的能力。

          plug
          - in的聲明周期跟ActionSerlvet的生命周期一致。他可以保證你的struts應(yīng)用程序需要的信息可用。


          ?

          posted on 2007-03-26 15:10 ★yesjoy★ 閱讀(1268) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Structs學(xué)習(xí)
          主站蜘蛛池模板: 永济市| 蕲春县| 阿合奇县| 舟山市| 荃湾区| 谷城县| 台东市| 天镇县| 葫芦岛市| 息烽县| 斗六市| 德钦县| 普安县| 防城港市| 盐边县| 武冈市| 三门县| 平凉市| 衡阳县| 塔河县| 曲麻莱县| 荥阳市| 南通市| 老河口市| 大连市| 常德市| 疏勒县| 资溪县| 资源县| 保亭| 鄂尔多斯市| 垣曲县| 桐庐县| 商城县| 江安县| 公安县| 古田县| 孙吴县| 朝阳市| 涿鹿县| 天气|