2014-01-09 2 views
0

Когда мне нужно BeanFactory в бобе управляемого весной, я использую:Как @Autowire в BeanFactory в управляемом Bean (JSF)

private @Autowired BeanFactory factory; 

Как я могу achive это в управляемом Bean? Я пробовал:

@ManagedProperty(value = "#{BeanFactory}") 
private BeanFactory beanFactory;// (the property has getters and setters) 

Но свойство равно нулю.

У меня есть распознаватель EL в гранях-конфигурации:

<el-resolver> 
     org.springframework.web.jsf.el.SpringBeanFacesELResolver 
</el-resolver> 

Спасибо и извините за мой бедный английский :)

+0

Зачем вам нужно «BeanFactory» в общем, вам следует избегать использования «BeanFactory» напрямую. –

+0

Есть ли лучший способ создать компонент? –

+0

Зачем вам «BeanFactory» для создания компонента? Вы можете просто использовать '@ ManagedProperty', чтобы получить желаемый компонент из контекста приложения! –

ответ

1

Похоже, что ваша @ManagedProperty разметка может быть проблема, в том, что (value = "#{BeanFactory}") должен был быть (value = "#{beanFactory}"), если только ваш класс BeanFactory не был определен как «BeanFactory» в разметке @ManagedBean внутри него.

По умолчанию бобы, аннотированные с @ManagedBean, будут сопоставлены с их именем класса, но первый символ будет нижним регистром, например: «BeanFactory» будет отображаться как «beanFactory», FooBean станет «fooBean».

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