Есть ли способ узнать, на какие свойства bean-компонентов ссылаются в файлах xhtml проекта JSF? - PullRequest
5 голосов
/ 09 ноября 2010

Я унаследовал проект JSF, разработанный год назад кем-то, кто больше не работает в моей компании, и код действительно трудно понять.Похоже, многое из этого было сгенерировано автоматически IDE, особенно методы получения и установки классов.Фактически, каждое частное поле имеет связанные методы получения и установки, даже если на них нет ссылок нигде в проекте.
Я хотел избавиться от всего этого бесполезного кода, прежде чем пытаться понять проект, но, учитывая, что это проект JSFНа свойства bean-компонентов можно ссылаться в файлах xhtml, и поэтому они не будут отображаться при использовании команды «show reference».
Есть ли способ узнать, какие методы действительно бесполезны для безопасногоудалить их?

Я использую Eclipse, но любой инструмент, позволяющий это сделать, будет большим облегчением!

Ответы [ 2 ]

1 голос
/ 09 ноября 2010

Я думаю, что лучше сначала изучить JSF и поиграть с ним перед погружением в существующий проект JSF. Геттеры / сеттеры предназначены исключительно для получения данных для отображения в выводе HTML и установки параметров запроса из ввода формы HTML. Например. <h:inputText value="#{bean.foo}" /> в представлении требует bean.getFoo() для отображения значения и bean.setFoo(String value) для установки отправленного значения. Так что просто оставьте их там и сконцентрируйтесь на методах действия.

Что касается инструментов, Eclipse не предлагает инструменты / средства для этого, так как они могут быть вызваны отражением, а не прямыми ссылками. Это почти невозможно обнаружить. По крайней мере, хорошо знать, что сеттеры никогда не вызываются для компонентов только для вывода, таких как <h:outputText value="#{bean.foo}" /> или для вложенных бинов, таких как <h:inputText value="#{bean.nested.foo}" />. Однако установщик обязателен всякий раз, когда вложенный компонент должен быть введен как управляемое свойство.

Я сам просто прячу добытчиков / сеттеров далеко от всего низа класса. Методы действия (по крайней мере, не методы получения / установки) находятся сразу после конструктора (ов). Вы даже можете настроить IDE для размещения их там во время автогенерации.

1 голос
/ 09 ноября 2010

Не думаю, что есть способ, кроме поиска по .fieldname.Но что еще более важно - сгенерированные сеттеры и геттеры, если они работают только с объектами данных, не являются серьезным препятствием для понимания проекта.Так что вы можете пропустить эту часть очистки.

...