書接上回,
上回說到,武松武二郎斗殺西門慶,為大哥報了仇……? !!!-_- 啊,說串了,嘿嘿 不好意思
(刪掉上面一行)
上回說到,我們的設置頁面已經做好了,接下來就是將時間轉換為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
????????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
????????
//
得到時間規則
10
????????cronExpression?
=
?CronExpConversion.getCronExpression(everyWhat,?commonNeeds,
11
????????????????monthlyNeeds,?weeklyNeeds,?userDefinedNeeds);
12

?2

?3

?4



?5



?6

?7

?8

?9

10

11

12

我定義了一個 規則類來處理轉換規則(寫得不是很好 能用就行 嘿嘿)
?1
?2
/**?*/
/**
?3
?*?頁面設置轉為UNIX?cron?expressions?轉換類
?4
?*?CronExpConversion
?5
?
*/
?6
public
?
class
?CronExpConversion?
{
?7
????
?8
????
/**?*/
/**
?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
????????????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
這樣就將頁面的時間設置轉為了Cron Expression。

?2


?3

?4

?5

?6



?7

?8


?9

10

11

12

13

14

15

16

17

18

19



20

21

22

23

24



25

26

27

28

29

30

31

32

33

34

35



36

37

38

39

40

41

42



43

44



45

46

47

48



49

50

51

52

53


54

55

56

57

58

59

60

61

62

63

?????????? ??????????????????????????????????????? To Be Continued...