К какому типу класса Java должен быть привязан компонент "p: calendar"?(для реализации конвертера для него).
Я думал, что это java.util.Date
, и поэтому у меня есть следующее:
<p:calendar id="fecha" value="#{catalogoController.criterios.fecha}"
maxlength="10"
size="10"
locale="es"
pattern="dd/MM/yyyy"
navigator="true"
showOn="button"
showButtonPanel="true" />
И свойство catalogoController.criterios.fecha
является java.util.Date
.
Мой пользовательский конвертер:
@FacesConverter(forClass = java.util.Date.class)
public class FechaDateConverter implements Converter {
...
public Object getAsObject(FacesContext context, UIComponent component, String value) {
log.info("getAsObject");
...
}
...
}
Я не привожу здесь код метода, потому что он большой.Он проверяет условия и создает исключение ConverterException с пользовательскими сообщениями Faces, которые я получаю из файла пользовательских свойств ("msjsConversion").
Но это не работает.Когда я ввожу неправильную дату (например, «01/032011»), мой метод getAsObject
не запускается (я знаю, потому что его первая строка журнала никогда не достигается).И сообщение о преобразовании по умолчанию показывается как FaceSMessage, а не то, которое я получаю из моего пакета "msjsConversion".
Я думаю, что причина, по которой оно не вызывается, заключается в том, что класс Java, к которому p:calendar
является не java.util.Date
(это класс, для которого я объявил свой конвертер).
Итак, я проверил это, если объявил конвертер с идентификатором:
@FacesConverter("fechaDateConverter")
public class FechaDateConverter implements Converter {
и я поместил это в p:calendar
компонент:
<f:converter converterId="fechaDateConverter" />
Это работает.
Так кто-нибудь знает, какой класс Java p:calendar
?Чтобы я мог объявить свой конвертер для этого класса и не использовать converterId?
Заранее спасибо.