书接上回,
上回说到,武松武二郎斗杀西门庆,为大哥报了仇…… !!!-_- 啊,说串了,嘿嘿 不好意思
(删掉上面一行)
上回说到,我们的设置页面已经做好了,接下来就是将时间转换为Unix Cron Expression。
2) 将时间转换为Unix Cron Expression
需要ActionForm将页面表单数据映射到Action中,然后在Action中转换为cron expression:
我定义了一个 规则类来处理转换规则(写得不是很好 能用就行 嘿嘿)
To Be Continued...
上回说到,武松武二郎斗杀西门庆,为大哥报了仇…… !!!-_- 啊,说串了,嘿嘿 不好意思
(删掉上面一行)
上回说到,我们的设置页面已经做好了,接下来就是将时间转换为Unix Cron Expression。
2) 将时间转换为Unix Cron Expression
需要ActionForm将页面表单数据映射到Action中,然后在Action中转换为cron expression:
1
SchedulerForm schedulerForm
=
(SchedulerForm) form;
2
String jobName
=
schedulerForm.getJobName();
3
String cronExpression
=
""
;
4![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
String[] commonNeeds
=
{schedulerForm.getSecond(), schedulerForm.getMinute(), schedulerForm.getHour()}
;
5![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
String[] monthlyNeeds
=
{schedulerForm.getWeek(), schedulerForm.getDayOfMonth()}
;
6
String weeklyNeeds
=
schedulerForm.getDayOfWeek();
7
String userDefinedNeeds
=
schedulerForm.getDate();
8
String everyWhat
=
schedulerForm.getEveryWhat();
9
//
得到时间规则
10
cronExpression
=
CronExpConversion.getCronExpression(everyWhat, commonNeeds,
11
monthlyNeeds, weeklyNeeds, userDefinedNeeds);
12
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
![](/Images/dot.gif)
5
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
![](/Images/dot.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
我定义了一个 规则类来处理转换规则(写得不是很好 能用就行 嘿嘿)
1
2![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
/** */
/**
3
* 页面设置转为UNIX cron expressions 转换类
4
* CronExpConversion
5
*/
6![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
public
class
CronExpConversion
{
7
8![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/** */ /**
9
* 页面设置转为UNIX cron expressions 转换算法
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![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
String userDefinedNeeds)
{
20
String cronEx = "" ;
21
String commons = commonNeeds[ 0 ] + " " + commonNeeds[ 1 ] + " "
22
+ commonNeeds[ 2 ] + " " ;
23
String dayOfWeek = "" ;
24![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
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![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
} 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![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
} else if ( " userDefined " .equals(everyWhat))
{
43
String dayOfMonth = userDefinedNeeds.split( " - " )[ 2 ];
44![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
if (dayOfMonth.startsWith( " 0 " ))
{
45
dayOfMonth = dayOfMonth.replaceFirst( " 0 " , "" );
46
}
47
String month = userDefinedNeeds.split( " - " )[ 1 ];
48![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
if (month.startsWith( " 0 " ))
{
49
month = month.replaceFirst( " 0 " , "" );
50
}
51
String year = userDefinedNeeds.split( " - " )[ 0 ];
52
// FIXME 暂时不加年份 Quartz报错
53![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**/ /* 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
这样就将页面的时间设置转为了Cron Expression。
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
3
![](/Images/OutliningIndicators/InBlock.gif)
4
![](/Images/OutliningIndicators/InBlock.gif)
5
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
6
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
![](/Images/dot.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](/Images/dot.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](/Images/dot.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](/Images/dot.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/InBlock.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](/Images/dot.gif)
43
![](/Images/OutliningIndicators/InBlock.gif)
44
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](/Images/dot.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
47
![](/Images/OutliningIndicators/InBlock.gif)
48
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](/Images/dot.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/InBlock.gif)
53
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
54
![](/Images/OutliningIndicators/InBlock.gif)
55
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
56
![](/Images/OutliningIndicators/InBlock.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/InBlock.gif)
59
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
60
![](/Images/OutliningIndicators/InBlock.gif)
61
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
62
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
63
![](/Images/OutliningIndicators/None.gif)
To Be Continued...