Como instanciar meu managedBean dentro dele mesmo, ou via facesconfig ou spring

Boa noite pessoal,

gostaria que vcs me ajudassem se possível. Eu não sei porque mas está ocorrendo algo estranho com meu sistema.

Quando eu vou numa tela de editar uma entidade, ela editar normalmente e tudo mais.

porém se eu estiver numa tela "editar simulação. e dela eu for para a tela inserir simulação … "

ele vai levar os dados da minha tela de editar… e o pior se eu clicar em “inserir…” ele da erro de… " detache… "

mesmo que eu mude os atributos… não posso inserir uma nova…

como eu ajeito isso ?

Meus Mbeans estão do tipo @RequestScope

e estão anotados com o Spring @Componente

alguém poderia me ajudar ?

Eu gostaria de algo mais ou menos assim.

Alguém pra me dar uma luz. ?

bom vamos ver se entendi, vc ker estando numa tela qdo for para outra tela “iniciar” o MB? se for é só mudar o escopo para @ViewScoped, seria isso?

bom é isso mesmo,

mas eu já mudei de scopo e não “zera”. continua os atributos dele.

aqui está um exemplo de meu MB.



@Component("simulacaoIpvaBean")
@RequestScoped
public class SimulacaoIpvaBean implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -3190687958851574653L;

	/**
	 * 
	 */
	private Simulacao simulacao = new Simulacao();

	private Hipotese hipotese = new Hipotese();
	private TipoHipotese tipoHipotese;

	private MetaAbrangencia metaAbrangencia = new MetaAbrangencia();

	@Autowired
	private SimulacaoService simulacaoService;

	@Autowired
	private TipoHipoteseService tipoHipoteseService;
	@Autowired
	private AbrangenciaService abrangenciaService;
	@Autowired
	private HipoteseService hipoteseService;

	@Autowired
	private CotacaoService cotacaoService;
	@Autowired
	private CotacaoModeloService cotacaoModeloService;
	@Autowired
	private SimulacaoModeloService simulacaoModeloService;

	@Autowired
	private TipoIndiceService tipoIndiceService;
	@Autowired
	private IndiceService indiceService;

	@Autowired
	private TipoIsencaoService tipoIsencaoService;
	@Autowired
	private SimulacaoIsencaoService simulacaoIsencaoService;

	private String nomeEstimativa;

	private List<String> listaAnoProjecao;

	private String anoProjecao;

	private double taxaDepreciacaoMinina;

	private List<SelectItem> listaCotacoes;

	private List<SelectItem> listaIndices;

	private List<SelectItem> listaHipoteses;

	private List<SelectItem> listaTiposHipoteses;

E aqui está meu applicationContext

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:security="http://www.springframework.org/schema/security"
	xmlns:lang="http://www.springframework.org/schema/lang"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/tx 
           http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/security 
           http://www.springframework.org/schema/security/spring-security-2.0.xsd
           http://www.springframework.org/schema/lang 
           http://www.springframework.org/schema/lang/spring-lang-2.5.xsd">

<!--	<import resource="quartz.xml"/>-->
	
	<context:property-placeholder location="classpath:application.properties"/>
	
	<context:component-scan base-package="br.sefaz.apollo" />
	<tx:annotation-driven transaction-manager="txManager"/>
	
	<bean id="entityManagerFactory"  
	      class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">  
         <property name="persistenceUnitName" value="apollo"/>  
         <property name="dataSource" ref="dataSource" />  
         <property name="jpaVendorAdapter">  
             <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">  
                 <property name="databasePlatform" value="${database.target}"/>  
                 <property name="showSql" value="${database.showSql}" />  
                 <property name="generateDdl" value="${database.generateDdl}" />  
             </bean>  
         </property>  
    </bean>  
	
	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
        <property name="driverClassName" value="${database.driver}"/>
        <property name="url" value="${database.url}"/>
        <property name="username" value="${database.username}"/>
        <property name="password" value="${database.password}"/>
    </bean>

	<bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">
		<property name="entityManagerFactory" ref="entityManagerFactory" />
	</bean>
	
	<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
	
	<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />

	
	<!-- Entidades Injetadas pelo Spring-->
<!--	<bean class="br.sefaz.apollo.model.TipoHipotese"/>-->
<!--	<bean class="br.sefaz.apollo.model.Hipotese"/>-->
<!--	<bean class="br.sefaz.apollo.model.Modelo"/>-->
<!--	<bean class="br.sefaz.apollo.model.Marca"/>-->
<!--	<bean class="br.sefaz.apollo.model.TipoVeiculo"/>-->
<!--	<bean class="br.sefaz.apollo.model.Combustivel"/>-->
	
  	
  	
  	<security:http auto-config='true'>
    	<security:intercept-url pattern="/pages/**" access="ROLE_USER" />
    	<security:form-login login-page="/login.jsf" authentication-failure-url="/login.jsf?erro=true"/>
    	<security:concurrent-session-control max-sessions="1"/>
    	<security:logout logout-url="/logout" logout-success-url="/"/>
  	</security:http>
  	
  	<security:authentication-provider>
    	<security:user-service properties="classpath:users.properties">
      	</security:user-service>
  	</security:authentication-provider>
  	
</beans>

[quote=EuclidesFilizola]Boa noite pessoal,

gostaria que vcs me ajudassem se possível. Eu não sei porque mas está ocorrendo algo estranho com meu sistema.

Quando eu vou numa tela de editar uma entidade, ela editar normalmente e tudo mais.

porém se eu estiver numa tela "editar simulação. e dela eu for para a tela inserir simulação … "

ele vai levar os dados da minha tela de editar… e o pior se eu clicar em “inserir…” ele da erro de… " detache… "

mesmo que eu mude os atributos… não posso inserir uma nova…

como eu ajeito isso ?

Meus Mbeans estão do tipo @RequestScope

e estão anotados com o Spring @Componente

alguém poderia me ajudar ?[/quote]

Elias,
tente resetar o estado do bean manualmente:

public String inserir(){
 limpar();
return "telaInserir";
}
void limpar(){
  bean = new Bean();
}

Só tem um problema.

entenda comigo.

as vezes vc está numa tela e simplesmente clica em outra tela. Dessa forma, eu não vou ter método algum para executar e sim link referenciando link.

ou seja.

eu estou na tela de "cotacao" onde ele executa um cotacaoBean. Do nada, eu quero ir pra tela de modelo, então oq acontece ?

vou no menu, e clico em "modelo" .

Eu não sei porque mas, meu sistema não está tratando os mBeans como @RequestScope, eles estão muito parecidos com applicationScope…

e eu utilizo a anotação deles "@RequestScope".

aqui está configuração do meu web.xml


<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:applicationContext.xml</param-value>
	</context-param>
	<context-param>
		<param-name>primefaces.THEME</param-name>
		<param-value>smoothness</param-value>
	</context-param>
	<filter>
		<filter-name>CharacterEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</filter>
	<filter>
		<filter-name>springSecurityFilterChain</filter-name>
		<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>CharacterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>springSecurityFilterChain</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<filter>
		<filter-name>PrimeFaces FileUpload Filter</filter-name>
		<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>PrimeFaces FileUpload Filter</filter-name>
		<servlet-name>Faces Servlet</servlet-name>
	</filter-mapping>

	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<listener>
		<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
	</listener>
	<listener>
		<listener-class>org.springframework.security.ui.session.HttpSessionEventPublisher</listener-class>
	</listener>
	<servlet>
		<servlet-name>Resource Servlet</servlet-name>
		<servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>
	</servlet>
	<servlet>
		<servlet-name>Faces Servlet</servlet-name>
		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>Resource Servlet</servlet-name>
		<url-pattern>/primefaces_resource/*</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>*.jsf</url-pattern>
	</servlet-mapping>
</web-app>

Será que eu criando filtros, eu resolvo esse meu problema ?