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