Bom dia, estou estudando Java/JSF/Spring e estou me deparando com o seguinte problema, ao tentar buscar as informações em um Bean com @Contoller ou @Component as informações nao vao pra minha pagina XHTML as informações só vao quando utilizo @ManagedBean para definir meu controller.
Na verdade deve ser @ManagedBean quando quer usar um bean no XHTML.
As outras anotações são outros tipos de bean do spring que você injeta com o @Autowired.
Pesquise por @Controller, @Repository, @Service.
Mais detalhes:
oi rennan, são justamente essas outras anotações de bean do spring que pretendo ultilizar, no entando a pagina xhtml nao reconhece as propriedades do Bean
Rapaz, não estou entendendo.
Você colocou o componente no “PackageToScan” ?
vc se refere ao arquivo de configuração do Spring.XML?
Isso.
nesse caso eu nao utilizo um arquivo XML e sim uma classe onde faço essas configurações.
package br.com.intranethope.config;
import java.util.Properties;
import javax.persistence.EntityManagerFactory;
import org.hibernate.jpa.HibernatePersistenceProvider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.transaction.PlatformTransactionManager;
@Configuration
@PropertySource({ “classpath:application.properties” })
@EnableJpaRepositories(basePackages = “br.com.intranethope.repository”)
public class HibernateConfig {
@Autowired
Environment env;
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean();
entityManagerFactory.setDataSource(DataSource());
entityManagerFactory.setPackagesToScan(new String[] { "br.com.intranethope.entity" });
entityManagerFactory.setJpaProperties(hibernateProperties());
entityManagerFactory.setPersistenceProvider(new HibernatePersistenceProvider());
return entityManagerFactory;
}
@Bean
public DriverManagerDataSource DataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setUsername(env.getRequiredProperty("jdbc.user"));
dataSource.setPassword(env.getRequiredProperty("jdbc.pass"));
dataSource.setDriverClassName(env.getRequiredProperty("jdbc.driver"));
dataSource.setUrl(env.getRequiredProperty("jdbc.url"));
return dataSource;
}
private Properties hibernateProperties() {
Properties properties = new Properties();
properties.put("hibernate.dialect", env.getRequiredProperty("hibernate.dialect"));
properties.put("hibernate.show_sql", env.getRequiredProperty("hibernate.show_sql"));
properties.put("hibernate.hbm2ddl.auto", env.getRequiredProperty("hibernate.hbm2ddl"));
properties.put("hibernate.format_sql", env.getRequiredProperty("hibernate.format_sql"));
return properties;
}
@Bean
public PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {
JpaTransactionManager txManager = new JpaTransactionManager();
txManager.setEntityManagerFactory(entityManagerFactory().getObject());
return txManager;
}
}
estou ultilizando o spring para injeção de dependência
é isso que estou tentando fazer
Olhando melhor agora, tente mudar o # para $:
#{indexBean.nome}
para
${indexBean.nome}
O spring só reconhece com cifrão.
Rennan, funcionou, obrigado cara!