Я новичок в JSF, поэтому этот вопрос может быть странным. У меня есть значение компонента inputText, связанное с свойством управляемого bean-типа типа Float. Мне нужно установить свойство равным null, когда поле inputText пустое, а не 0. Это не делается по умолчанию, так что я добавил конвертер со следующим методом реализованным:Значение свойства управляемого управляемого bean не установлено равным
public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) throws ConverterException {
if (StringUtils.isEmpty(arg2)) {
return null;
}
float result = Float.parseFloat(arg2);
if (result == 0) {
return null;
}
return result;
}
Я зарегистрировал конвертер, и назначил его к компоненту inputText. Я зарегистрировал аргумент arg2, а также зарегистрировал возвращаемое значение из метода getAsObject. По моему журналу я вижу, что он возвращает нулевое значение. Но я также регистрирую свойство setter для bean-компонента, и аргумент равен 0, а не null, как ожидалось. Чтобы быть более точным, свойство setter вызывается дважды, один раз с нулевым аргументом, второй раз с аргументом 0 значения.
Он по-прежнему устанавливает значение бобов в 0. Как я могу установить значение null?
Заранее спасибо.
Благодарим вас за ответ. Я попробую. Я использую Websphere Application Server Community Edition, поэтому мне нужно будет выяснить, как его настроить. Кроме того, у меня такая же проблема со свойствами String, для которой я не включил никаких конвертеров. – Vladimir
JSF 1.1 или 1.2? Если JSF 1.1, преобразователи 'String' по дизайну игнорируются. Если JSF 1.2, сделайте то же самое. – BalusC
Я использую JSF 1.2. К сожалению, я до сих пор не смог запустить WAS CE с аргументами VM. – Vladimir