[RESOLVIDO] Pagina XHTML não esta reconhecendo @Controller ou @Component no controller

10 respostas Resolvido
jsfjavaspring
A

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.

Capturar1

Capturar2

10 Respostas

R

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:

A

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

R

Rapaz, não estou entendendo.
Você colocou o componente no “PackageToScan” ?

A

vc se refere ao arquivo de configuração do Spring.XML?

R

Isso.

A

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;
}

}

A

estou ultilizando o spring para injeção de dependência

A

é isso que estou tentando fazer

R
Solucao aceita

Olhando melhor agora, tente mudar o # para $:

#{indexBean.nome}

para
${indexBean.nome}

O spring só reconhece com cifrão.

A

Rennan, funcionou, obrigado cara!

Criado 11 de junho de 2018
Ultima resposta 14 de jun. de 2018
Respostas 10
Participantes 2