<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 40,  comments - 187,  trackbacks - 0
    書接上回,
    上回說到,武松武二郎斗殺西門慶,為大哥報了仇……? !!!-_- 啊,說串了,嘿嘿 不好意思
    (刪掉上面一行)
    上回說到,我們的設(shè)置頁面已經(jīng)做好了,接下來就是將時間轉(zhuǎn)換為Unix Cron Expression。

    2) 將時間轉(zhuǎn)換為Unix Cron Expression

    需要ActionForm將頁面表單數(shù)據(jù)映射到Action中,然后在Action中轉(zhuǎn)換為cron expression:

    ?1 SchedulerForm?schedulerForm? = ?(SchedulerForm)?form;
    ?2 ????????String?jobName? = ?schedulerForm.getJobName();
    ?3 ????????String?cronExpression? = ? "" ;
    ?4 ????????String[]?commonNeeds? = ? {schedulerForm.getSecond(),?schedulerForm.getMinute(),?schedulerForm.getHour()} ;
    ?5 ????????String[]?monthlyNeeds? = ? {schedulerForm.getWeek(),?schedulerForm.getDayOfMonth()} ;
    ?6 ????????String?weeklyNeeds? = ?schedulerForm.getDayOfWeek();
    ?7 ????????String?userDefinedNeeds? = ?schedulerForm.getDate();
    ?8 ????????String?everyWhat? = ?schedulerForm.getEveryWhat();
    ?9 ???????? // 得到時間規(guī)則
    10 ????????cronExpression? = ?CronExpConversion.getCronExpression(everyWhat,?commonNeeds,
    11 ????????????????monthlyNeeds,?weeklyNeeds,?userDefinedNeeds);
    12

    我定義了一個 規(guī)則類來處理轉(zhuǎn)換規(guī)則(寫得不是很好 能用就行 嘿嘿)
    ?1
    ?2 /**
    ?3 ?*?頁面設(shè)置轉(zhuǎn)為UNIX?cron?expressions?轉(zhuǎn)換類
    ?4 ?*?CronExpConversion
    ?5 ? */

    ?6 public ? class ?CronExpConversion? {
    ?7 ????
    ?8 ???? /**
    ?9 ?????*?頁面設(shè)置轉(zhuǎn)為UNIX?cron?expressions?轉(zhuǎn)換算法
    10 ?????*? @param ?everyWhat
    11 ?????*? @param ?commonNeeds?包括?second?minute?hour
    12 ?????*? @param ?monthlyNeeds?包括?第幾個星期?星期幾
    13 ?????*? @param ?weeklyNeeds??包括?星期幾
    14 ?????*? @param ?userDefinedNeeds??包括具體時間點
    15 ?????*? @return ?cron?expression
    16 ????? */

    17 ???? public ? static ?String?convertDateToCronExp(String?everyWhat,
    18 ????????????String[]?commonNeeds,?String[]?monthlyNeeds,?String?weeklyNeeds,
    19 ????????????String?userDefinedNeeds)? {
    20 ????????String?cronEx? = ? "" ;
    21 ????????String?commons? = ?commonNeeds[ 0 ]? + ? " ? " ? + ?commonNeeds[ 1 ]? + ? " ? "
    22 ???????????????? + ?commonNeeds[ 2 ]? + ? " ? " ;
    23 ????????String?dayOfWeek? = ? "" ;
    24 ???????? if ?( " monthly " .equals(everyWhat))? {
    25 ???????????? // ?eg.:?6#3?(day?6?=?Friday?and?"#3"?=?the?3rd?one?in?the
    26 ???????????? // ?month)
    27 ????????????dayOfWeek? = ?monthlyNeeds[ 1 ]
    28 ???????????????????? + ?CronExRelated.specialCharacters
    29 ????????????????????????????.get(CronExRelated._THENTH)? + ?monthlyNeeds[ 0 ];
    30 ????????????cronEx? = ?(commons
    31 ???????????????????? + ?CronExRelated.specialCharacters.get(CronExRelated._ANY)
    32 ???????????????????? + ? " ? "
    33 ???????????????????? + ?CronExRelated.specialCharacters.get(CronExRelated._EVERY)
    34 ???????????????????? + ? " ? " ? + ?dayOfWeek? + ? " ? " ).trim();
    35 ????????}
    ? else ? if ?( " weekly " .equals(everyWhat))? {
    36 ????????????dayOfWeek? = ?weeklyNeeds;? // ?1
    37 ????????????cronEx? = ?(commons
    38 ???????????????????? + ?CronExRelated.specialCharacters.get(CronExRelated._ANY)
    39 ???????????????????? + ? " ? "
    40 ???????????????????? + ?CronExRelated.specialCharacters.get(CronExRelated._EVERY)
    41 ???????????????????? + ? " ? " ? + ?dayOfWeek? + ? " ? " ).trim();
    42 ????????}
    ? else ? if ?( " userDefined " .equals(everyWhat))? {
    43 ????????????String?dayOfMonth? = ?userDefinedNeeds.split( " - " )[ 2 ];
    44 ???????????? if ?(dayOfMonth.startsWith( " 0 " ))? {
    45 ????????????????dayOfMonth? = ?dayOfMonth.replaceFirst( " 0 " ,? "" );
    46 ????????????}

    47 ????????????String?month? = ?userDefinedNeeds.split( " - " )[ 1 ];
    48 ???????????? if ?(month.startsWith( " 0 " ))? {
    49 ????????????????month? = ?month.replaceFirst( " 0 " ,? "" );
    50 ????????????}

    51 ????????????String?year? = ?userDefinedNeeds.split( " - " )[ 0 ];
    52 ???????????? // FIXME?暫時不加年份?Quartz報錯
    53 ???????????? /* cronEx?=?(commons?+?dayOfMonth?+?"?"?+?month?+?"?"
    54 ????????????????????+?CronExRelated.specialCharacters.get(CronExRelated._ANY)
    55 ????????????????????+?"?"?+?year).trim(); */

    56 ????????????cronEx? = ?(commons? + ?dayOfMonth? + ? " ? " ? + ?month? + ? " ? "
    57 ???????????????????? + ?CronExRelated.specialCharacters.get(CronExRelated._ANY)
    58 ???????????????????? + ? " ? " ).trim();
    59 ????????}

    60 ???????? return ?cronEx;
    61 ????}
    ????
    62 }

    63
    這樣就將頁面的時間設(shè)置轉(zhuǎn)為了Cron Expression。

    ?????????? ??????????????????????????????????????? To Be Continued...
    posted on 2007-01-10 16:15 小立飛刀 閱讀(5072) 評論(3)  編輯  收藏 所屬分類: Spring

    FeedBack:
    # re: Spring Quartz如何動態(tài)配置時間(2)
    2007-01-10 18:34 | zxy
    好好好 不錯不錯  回復(fù)  更多評論
      
    # re: Spring Quartz如何動態(tài)配置時間(2)[未登錄]
    2007-10-15 09:09 | CC
    能否提供下CronExRelated類的代碼?

    貌似不是spring或者quartz包里的  回復(fù)  更多評論
      
    # re: Spring Quartz如何動態(tài)配置時間(2)
    2007-10-15 09:40 | 小立飛刀
    @CC
    這個類封裝了一些Quartz時間規(guī)則的常量,便于自己使用,定義比較靈活,可以根據(jù)您的具體情況擴展。

    /**
    * Quartz時間規(guī)則常量類
    * CronExRelated
    * @author allen
    */
    public class CronExRelated {

    public static final String _EVERY = "every";
    public static final String _ANY = "any";
    public static final String _RANGES = "ranges";
    public static final String _INCREMENTS = "increments";
    public static final String _ADDITIONAL = "additional";
    public static final String _LAST = "last";
    public static final String _WEEKDAY = "weekday";
    public static final String _THENTH = "theNth";
    public static final String _CALENDAR = "calendar";

    public static final String _TYPE = "type";

    /**
    * 0 0 6 ? * 1#1 ? monthly
    * 0 0 6 ? * 1 ? weekly
    * 0 0 6 30 7 ? 2006 useDefined
    */
    static String[] headTitle = {"TYPE","SECONDS","MINUTES","HOURS","DAYOFMONTH","MONTH","DAYOFWEEK","YEAR"};

    /**
    * cron expression special characters
    * Map
    * specialCharacters
    */
    public static Map specialCharacters;

    static {
    specialCharacters = new HashMap(10);
    specialCharacters.put(_EVERY, "*");
    specialCharacters.put(_ANY, "?");
    specialCharacters.put(_RANGES, "-");
    specialCharacters.put(_INCREMENTS, "/");
    specialCharacters.put(_ADDITIONAL, ",");
    specialCharacters.put(_LAST, "L");
    specialCharacters.put(_WEEKDAY, "W");
    specialCharacters.put(_THENTH, "#");
    specialCharacters.put(_CALENDAR, "C");

    specialCharacters.put(_TYPE, headTitle);
    }

    public static void set(String ex, int index) {
    ((String[])specialCharacters.get(_TYPE))[index] = ex;
    }

    }  回復(fù)  更多評論
      
    <2007年10月>
    30123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    生存或毀滅,這是個必答之問題:是否應(yīng)默默的忍受坎苛命運之無情打擊,還是應(yīng)與深如大海之無涯苦難奮然為敵,并將其克服。此二抉擇,究竟是哪個較崇高?

    常用鏈接

    留言簿(12)

    隨筆分類(43)

    相冊

    收藏夾(7)

    朋友的博客

    電子資料

    搜索

    •  

    積分與排名

    • 積分 - 302638
    • 排名 - 192

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费一级特黄特色大片在线观看 | 亚洲午夜电影在线观看高清| 少妇高潮太爽了在线观看免费| 国产精品亚洲小说专区| 日日噜噜噜噜夜夜爽亚洲精品| 日本卡1卡2卡三卡免费| 久久综合久久综合亚洲| 国产偷v国产偷v亚洲高清| 69式国产真人免费视频| 色哟哟国产精品免费观看| 97se亚洲综合在线| jizzjizz亚洲| 在线观看免费a∨网站| 日韩av无码久久精品免费| 最新亚洲人成网站在线观看| 亚洲AV无码专区电影在线观看| 国产免费看插插插视频| 国产一卡二卡四卡免费| 欧洲一级毛片免费| 特级aa**毛片免费观看| 亚洲AV成人无码天堂| 国产AV无码专区亚洲AVJULIA| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 亚州免费一级毛片| 成人A片产无码免费视频在线观看| 极品色天使在线婷婷天堂亚洲 | 亚洲熟妇丰满多毛XXXX| 免费人成视频在线观看视频| 女人18毛片水真多免费看 | 中文字幕免费在线看线人| 成人爽a毛片免费| 野花香在线视频免费观看大全| 一级毛片a女人刺激视频免费| 精品在线观看免费| 国产成人 亚洲欧洲| 免费人成大片在线观看播放电影| 亚洲爆乳成av人在线视菜奈实| 激情综合亚洲色婷婷五月APP| 亚洲黄色免费电影| 亚洲一线产区二线产区精华| 亚洲国产日韩在线一区|