1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.cubby.validator;
17
18 import static org.seasar.cubby.validator.ValidationUtils.getValidation;
19 import static org.seasar.cubby.validator.ValidationUtils.getValidationRules;
20
21 import java.io.Serializable;
22 import java.lang.reflect.Method;
23
24 import org.seasar.cubby.action.ActionContext;
25 import org.seasar.cubby.action.ActionErrors;
26 import org.seasar.cubby.action.ActionResult;
27 import org.seasar.cubby.action.Validation;
28
29
30
31
32
33
34
35 class ErrorPageValidationFailBehaviour implements ValidationFailBehaviour,
36 Serializable {
37
38
39 private static final long serialVersionUID = 1L;
40
41
42 private final String errorMessage;
43
44
45 private final String[] fieldNames;
46
47
48
49
50 public ErrorPageValidationFailBehaviour() {
51 this(null);
52 }
53
54
55
56
57
58
59
60
61
62 public ErrorPageValidationFailBehaviour(final String errorMessage,
63 final String... fieldNames) {
64 this.errorMessage = errorMessage;
65 this.fieldNames = fieldNames;
66 }
67
68
69
70
71 public ActionResult getValidationErrorActionResult(
72 final ActionContext actionContext) {
73 if (errorMessage != null && errorMessage.length() > 0) {
74 final ActionErrors actionErrors = actionContext.getActionErrors();
75 actionErrors.add(errorMessage, fieldNames);
76 }
77 final Object action = actionContext.getAction();
78 final Method actionMethod = actionContext.getActionMethod();
79 final Validation validation = getValidation(actionMethod);
80 final ValidationRules validationRules = getValidationRules(action,
81 validation.rules());
82 return validationRules.fail(validation.errorPage());
83 }
84
85 }