В одном предложении: аннотация @ManagedProperty
возвращает null
вместо того, чтобы вводить свойство.аннотация @ManagedProperty возвращает null вместо того, чтобы вводить свойство
подробности: Есть два класса:
@ManagedBean(name="authFilter")
@SessionScoped
public class AuthFilter implements Filter {
@ManagedProperty("#{loginBean}")
private LoginBean loginBean;
public void setLoginBean(LoginBean loginBean) {
this.loginBean = loginBean;
}
...
}
и
@ManagedBean(name="loginBean")
@SessionScoped
public class LoginBean {
...
}
Теперь AFAIK @ManagedProperty
аннотацию и связующий должен быть достаточно для того, свойство быть введены, или, по крайней мере, другие вопросы здесь и блог BalusC предлагают это, но он все равно всегда остается null
.
Это также интересно и, вероятно, связано с этой проблемой, что я получаю предупреждения для этих классов, что они уже зарегистрированы как управляемый компонент, даже если они зарегистрированы только через faces-config.xml
или с аннотациями. ( Пробовал их стенд отдельно, без разницы.) Если ни один из них не присутствует, тогда WARNING исчезнут, но @ManagedProperty
не работает с.
WARNING: JSF1074: Managed bean named 'confListBean' has already been registered. Replacing existing managed bean class type <projectname>.web.authFilter with <projectname>.web.authFilter.
Таким образом, вопросы будут:
- Что еще требуется для
@ManagedProperty
для инъекций, что я не делаю? - Что возможно «перерегистрировать» эти управляемые бобы, кроме
@notations
иfaces-config.xml
? Есть ли след для процесса, который собирает управляемые компоненты, которые я мог проверить?
Как насчет добавления геттера для инъецируемого управляемого компонента? Я думаю, что вложение сеанса управляемых компонентов в другое с той же областью не является хорошей идеей, попробуйте изменить область действия «authFilter» для запроса. – Omar
Есть ли у вас конфигурация в 'faces-config.xml'? – SRy
@Omar Хорошие идеи. Я уже пробовал геттер раньше, не имел никакого значения. Хотя логически это не имеет смысла, я изменил область запроса, и это не имело никакого значения. –