2014-01-31 2 views
0

Я получил некоторые проблемы для атрибута связывания в JSF 1.2 с EL 1.0PropertyNotWritableException в JSF 1.2 - сеттер возвращаемое значение

public class Bean { 

    private String name; 

    public String getName() { 
    return name; 
    } 

    public Bean setName(String name) 
    this.name = name; 
    return this; 
    } 

XHTML, которые дают мне «„имя“свойство не доступен для записи» ошибка отправки формы:

.. 

<h:inputText value="#{bean.name}" /> 

.. 

Почему? Это сторонняя библиотека, есть ли способ обхода решения?

ответ

0

я нашел обходной путь для этого случая, но ясно, что это не самый элегантный способ:

Создайте «псевдо-расширение» класса Bean:

public class BeanExtension { 

    private Bean instance = new Bean(); 

    public String getName() { 
    return instance.getName(); 
    } 

    public void setName(String name) 
    instance.setName(name); 
    } 

    // omitted instance getter and setter methods 

    } 

Так как я хотел, чтобы переопределить метод SetName возвращения в «пустота», теперь я должен использовать bean.instance для доступа к нему атрибуты и bean.name связать имя JSF с EL.

0

Изменить подпись setName метода, как это

public void setName(String name) 
    this.name = name; 
} 

Если вы хотите второй конструктор в классе Bean, то он должен быть разработан как этот

public Bean (String name) 
    this.name = name; 
} 
+0

проблема в том, что это 3d party lib. – rodrigocprates

Смежные вопросы