Вызов установщика со страницы JSF, которая была объявлена ​​с параметром, отличным от самой переменной - PullRequest
0 голосов
/ 03 марта 2020

Я использую Внешнюю библиотеку, в которой есть много классов с переменными, объявленными так:

private String testBigDecimal;

public String getTestBigDecimal() {
    return this.testBigDecimal;
}

public void setTestBigDecimal(BigDecimal testBigDecimal) {
    this.testBigDecimal = BigDecimalValidador.validationXpto( testBigDecimal); //return String
} 

Обратите внимание, что метод setter () получает значение BigDecimal из-за некоторого процесса проверки и возвращает значение String. Когда они вызываются со стороны сервера, все в порядке! ... но при вызове со стороны представления (страница JSF) с соответствующим BigDecimalConverter я получаю эту ошибку:

javax.faces.component.UpdateModelException: javax.el.PropertyNotWritableException: ... Свойство [testBigDecimal] не доступен для записи для типа ....

После правильного вызова Converter код завершается ошибкой, поскольку он все еще ожидает setTestBigDecimal(Srting testBigDecimal) метод.

Моя страница JSF : <h:inputText value="#{fooBean.testBigDecimal}" converter="bigDecimalConverter" />

Есть ли способ гарантировать, что JSF может вызвать объявленный установщик (который был "нестандартным способом")? В локальных тестах я изменил тип String testBigDecimal на тип BigDecimal testBigDecimal, и все работает нормально, но я не могу изменить источник Lib, и расширение всех этих классов будет болезненным.

Кто-нибудь может помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...