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. ?
luxu
#4
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 ?