Fala galera,
estou com um problema, que não tenho certeza se é por causa do ViewScoped,
mas é assim:
numa tela eu listo meus itens, ai dou um exibir, os dados são mostrados na outra tela… até ai blz.
Porém quando eu clico no gravar, eu vejo que não executa o meu método apenas recria o meu mb novamente,
ai se eu clico novamente no botão, ai sim é passado pelo método certo, mas nesta hora meu objeto ja esta limpo.
Estou usando primefaces, mas isso acontece mesmo usando o h:commandbutton…
Eu até alterei o mb para session para ver, pois acontece que tenho que clicar 2x para executar o método…
alguém tem alguma dica sobre isso?
nunca me aconteceu esse pacal…
abraco
O problema não é do escopo escolhido.
Te aconselho a estudar os escopos e entender a diferença entre eles.
Aqui tem uma página que fala sobre isso: JSF Mini Livro - Dicas, conceitos e boas práticas.
O ideal do ViewScoped é utilizá-lo com uma tela e as ações serem realizadas por dialogs/ajax.
eu sei como funciona o viewscope… talvez eu me expressei errado no título…
mas vc tem alguma idéia do problema? o pq de eu clicar e não executar o método…
[quote=alves.Felipe]eu sei como funciona o viewscope… talvez eu me expressei errado no título…
mas vc tem alguma idéia do problema? o pq de eu clicar e não executar o método…[/quote]Não.
Veja c tem form o botão clicado.
tem form sim… aparentemente esta tudo certo…
[code]
<ui:composition template="/pages/pub/layout/layout.xhtml">
<ui:define name=“menu_horizontal”><ui:include src="/pages/pub/menu/menu.xhtml" /></ui:define>
<ui:define name="corpo">
<p:growl id="growl" autoUpdate="true" />
<!-- === PRODUTO === -->
<div class="separador-2"></div>
<div style="width:795px;">
<h:messages/>
<h:form id="formExibirProduto">
<h:inputHidden value="#{doacaoProdutoBean.doacao.id}" />
<div class="titulo" style="width: 95%">
<h:outputText value="#{doacaoProdutoBean.doacao.tipo}" />
<h:outputText value="#{doacaoProdutoBean.doacao.titulo}" />
</div>
<div style="width: 365px; float: left; min-height: 90px;">
<ui:repeat var="img" value="${doacaoProdutoBean.doacao.anexos}">
<div style="float: left; width:105px; margin: 2px;">
<p:graphicImage value="/imagem?id=${img.id}&idAnexo=${doacaoProdutoBean.doacao.id}" height="80"/>
</div>
</ui:repeat>
</div>
<div style=" float: left; height: 186px; line-height: 25px; ">
alguma coisa <br/>
<h:outputText value="#{obj.usuario.login}" /><br />
Curitiba - Pr <br/>
3 doações <a href="#"> Ver qualificações</a><br/>
<!-- === botão ============================================= -->
<p:commandButton value="Doar Prime" action="#{doacaoProdutoBean.doarProduto}"></p:commandButton>
<h:commandButton value="doar cb" action="#{doacaoProdutoBean.doarProduto}" />
</div>
<div style="height: 10px; clear:both;"></div>
<div class="separador"/>
<div class="subtitulo">Descrição do Produto</div>
<div>
<h:outputText value="#{doacaoProdutoBean.doacao.descricao}" escape="false"/>
<br/><br/>
</div>
<div class="separador"/>
<div class="subtitulo" >Detalhes do Produto</div>
<div style="width:795px; display: block;">
<h:outputText value="#{doacaoProdutoBean.doacao.detalhes}" escape="false"/>
<br/><br/>
</div>
<div class="separador"/>
<div class="subtitulo" >Mensagens</div>
<div class="clear"></div>
</h:form>
</div>
</ui:define>
</ui:composition>[/code]
Se você estiver utilizando o p:commandButton coloque a opção ajax=“false”
esta muito estranho isso…
pq do jeito que esta funciona no chrome e no ie8
ai arranquei tudo da página inclusive o include do menu… só deixei um commandButton
ai funciona no firefox também… mas não funciona no ie9…
acho que o problema é com o primefaces… tirei todos os componentes do prime e a princípio funciona…
que beleza…
não entendi bem seu problema… mas acredito que se você mudar o seu bean de ViewScoped para SessionScoped deva resolver não??
ou você muda a tela e deixa as ações serem exibidas em modais…
descobri qual era o problema…
não era nem com o prime e nem com o viewscoped, pra variar era o programador…(eu)…rsrs
na página onde eu listo os itens tem um p:commandLink e não estava com ajax=false aqui…
depois de quase 2 dias parado… é isso ai…
valeo pela ajuda de todos…
abraco