1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.taglib.core;
20
21 import javax.el.ELContext;
22 import javax.el.ValueExpression;
23 import javax.faces.application.Application;
24 import javax.faces.context.FacesContext;
25 import javax.faces.validator.RequiredValidator;
26 import javax.faces.validator.Validator;
27 import javax.faces.webapp.ValidatorELTag;
28 import javax.servlet.jsp.JspException;
29
30
31
32
33
34
35
36 public class ValidateRequiredTag extends ValidatorELTag
37 {
38
39
40
41 private static final long serialVersionUID = 6569308536432242026L;
42
43 private ValueExpression _binding;
44
45 public void setBinding(ValueExpression binding)
46 {
47 _binding = binding;
48 }
49
50 @Override
51 public void release()
52 {
53 _binding = null;
54 }
55
56 @Override
57 protected Validator createValidator() throws JspException
58 {
59 FacesContext facesContext = FacesContext.getCurrentInstance();
60 ELContext elContext = facesContext.getELContext();
61 if (null != _binding)
62 {
63 Object validator;
64 try
65 {
66 validator = _binding.getValue(elContext);
67 }
68 catch (Exception e)
69 {
70 throw new JspException("Error while creating the Validator", e);
71 }
72 if (validator instanceof RequiredValidator)
73 {
74 return (Validator)validator;
75 }
76 }
77 Application application = facesContext.getApplication();
78 RequiredValidator validator = null;
79 try
80 {
81 validator = (RequiredValidator) application.createValidator(RequiredValidator.VALIDATOR_ID);
82 }
83 catch (Exception e)
84 {
85 throw new JspException("Error while creating the Validator", e);
86 }
87
88 if (null != validator)
89 {
90 if (null != _binding)
91 {
92 _binding.setValue(elContext, validator);
93 }
94 }
95 return validator;
96 }
97 }