Olá, sou novo com o desenvolvimento web e estou desenvolvendo um cadastro de noticias com JSF 2.0 + Primefaces
estou desenvolvendo a parte do layout e meu amigo desenvolve a programação, porém nos deparamos com um problema que está dificil solucionar, talvez para alguem experiente seja algo facil, porém para mim está meio confuso.
Temos uma sessão de cadastro de noticias, na qual está funcionando normalmente, porém utilizo template para formular as paginas e possuo apenas um form que já esta incluso no meu template, depois só dou um include para puxar as paginas xhtml nos seus devidos espaços, nesse cadastro temos um panelGrid que vão as informações da noticia inclusve imagem e envia pro banco, abaixo deste panel temos um dataTable que nos mostra as noticias cadastradas, imagems, titulo descrição data e botão de excluir e editar, porém o nosso problema esta com o botão editar.
Ao clicar no botão é para dar um update no panelGrid, porem se colocarmos o id do panel ele não encontra, para isso resolvi colocando ajax=“false”, porém as imagens da listagem desaparecem e ao salvar a noticia ele nao atualiza a listagem de baixo, porém se eu clicar no editar novamente o texto está modificado.
Se eu usar sem o ajax, preciso dar um f5 para listar no meu panelGrid, queria resolver este problema, saber o que está acontecendo, postarei aqui o comando que esta ocorrendo este pequeno erro.
[quote]<ui:composition template=“templateadmin.xhtml”
xmlns=“http://www.w3.org/1999/xhtml”
xmlns:h=“http://java.sun.com/jsf/html”
xmlns:f=“http://java.sun.com/jsf/core”
xmlns:p=“http://primefaces.org/ui”
xmlns:ui=“http://java.sun.com/jsf/facelets”>
<ui:define name="header">
<ui:include src="top.xhtml"/>
</ui:define>
<ui:define name="menu">
<ui:include src="menuadmin.xhtml"/>
</ui:define>
<ui:define name="body">
<p:panelGrid id="painel" columns="2" style="width: 550px">
<f:facet name="header">
Cadastrar Notícias
</f:facet>
<h:outputLabel for="titulo" value="Título:" style="width: 150px" />
<p:inputText id="titulo" value="#{cadastroNoticiasMB.noticia.titulo}" label="Título" style="width: 400px"/>
<h:outputLabel for="descricao" value="Descrição:" style="width: 150px" />
<p:inputTextarea id="descricao" value="#{cadastroNoticiasMB.noticia.descricao}" label="Descrição" style="width: 400px"/>
<h:outputLabel for="autor" value="Autor:" style="width: 150px" />
<p:inputText id="autor" value="#{cadastroNoticiasMB.noticia.autor}" label="Autor" style="width: 400px"/>
<h:outputText value="Jogo:" />
<p:selectOneMenu value="#{cadastroNoticiasMB.noticia.jogo}" converter="JogoConverter">
<f:selectItem itemLabel="Selecione..." itemValue="" />
<f:selectItems value="#{cadastroNoticiasMB.jogos}" var="j" itemLabel="#{j.nome}" itemValue="#{j}" />
</p:selectOneMenu>
<h:outputLabel for="imagem" value="Imagem:" style="width: 150px" />
<p:fileUpload id="imagem"
label="Selecionar"
fileUploadListener="#{cadastroNoticiasMB.carregarArquivo}"
mode="advanced"
update="mensagensPainel"
sizeLimit="600000"
allowTypes="/(\.|\/)(gif|jpe?g|png)$/">
</p:fileUpload>
<p:growl id="mensagensPainel" showDetail="true"/>
<f:facet name="footer">
<p:commandButton value="Salvar"
icon="ui-icon-check"
style="margin:0"
action="#{cadastroNoticiasMB.salvarNoticia}"
update="mensagensPainel painel listaNoticias"/>
</f:facet>
</p:panelGrid>
<br/>
<p:dataTable id="listaNoticias"
var="n"
value="#{cadastroNoticiasMB.noticiasCadastradas}"
paginator="true"
rows="10"
emptyMessage="Não há notícias cadastradas.">
<p:column headerText="Imagem" style="width: 20%">
<h:graphicImage url="#{n.caminhoImagem}" style="width: 110px; height: 70px" />
</p:column>
<p:column headerText="Título" style="width: 40%">
<h:outputText value="#{n.titulo}" />
</p:column>
<p:column headerText="Data" style="width: 20%">
<h:outputText value="#{n.dataCriacao}" />
</p:column>
<p:column headerText="" style="width: 20%">
<p:commandButton value="Excluir"
actionListener="#{cadastroNoticiasMB.excluirNoticia}"
update="listaNoticias mensagensTable" >
<f:attribute name="noticia" value="#{n}"/>
</p:commandButton>
<p:commandButton value="Editar"
ajax="false"
actionListener="#{cadastroNoticiasMB.editarNoticia}"
update="painel" >
<f:attribute name="noticia" value="#{n}"/>
</p:commandButton>
</p:column>
<p:growl id="mensagensTable" showDetail="true"/>
</p:dataTable>
</ui:define>
<ui:define name="footer">
Eu sou apenas o rodapé =/
</ui:define>
</ui:composition>
[/quote]
Alguem poder me dar uma luz? quais opções tenho? que problema é este que está acontecendo?
Obrigado desde já!