Ajuda com primefaces 2(RESOLVIDO)

Bom dia a todos,

Preciso muito de uma ajuda!!
Estou usando primefaces 2.2 e JSF 2, vejam o trecho abaixo:

			    <p:dataTable var="row" value="#{marcaBean.marcas}" 
			                 paginator="true" rows="5"  
			                 paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
			                 rowsPerPageTemplate="5,10,15" 
			                 style="width:400px" >  

			        <p:column>  
			            <f:facet name="header">  
			                <h:outputText value="Marca" />  
			            </f:facet>  
			            <h:outputText value="#{row.descricao}" />  
			        </p:column>

			         <p:column style="width:32px">  
			            <p:commandButton  action="#{marcaBean.edit}" ajax="false" image="ui-icon ui-icon-search">  
			                <f:setPropertyActionListener value="#{row}" target="#{marcaBean.marca}" /> 
			            </p:commandButton>  
			        </p:column>  
        
			         <p:column style="width:32px">  
			            <p:commandButton action="#{marcaBean.remove}" image="ui-icon ui-icon-delete" onclick="return confirm('Confirma exclusao?');">  
			                <f:setPropertyActionListener value="#{row}" target="#{marcaBean.marca}" /> 
			            </p:commandButton>  
			        </p:column>
			        
			    </p:dataTable>

O que ocorre no código acima, é que o botão de EDIÇÃO não redireciona para a página, fica uma página em branco. Abaixo segue código do Controller:


    public String edit(){
    	setMarca(marcas.getRowData());
    	return "/pages/marca/edit.jsf";
    }

	public String remove() {

		try {
			setMarca(marcas.getRowData());
			MarcaDAO dao = MarcaDAOHibernate.getInstance();
			dao.delete(getMarca());
		} catch (DAOException e) {
			JsfUtil.addErrorMessageExcecao(e, e.getMessage());
		}

		setMarca(null);

		return "/pages/marca/show.jsf";

	}

O mais estranho, é que debugando, ele entra no ManagedBean, executa tudo normal, só não leva para a página correta!!

O outro problema é que não posso acentuar nada, que dá a exception: Invalid byte 2 of 3-byte UTF-8 sequence.

Desde já agradeço.

Alguém já passou por isso??

:?:

Oi!!!

Tenta fezer isto, não sei se é a melhor maneira

return “pages/marca/show.jsf?faces-redirect=true”;

Vc está usando facelets ou o mapeamento no web.xml .jsf?

se for facelets usa .xhtml pra chamar a página

Ate mais…

Marlise

Olá Mertz,

Estou usando facelets sim.

Que mapeamento você se refere no web.xml :?:
O mapping no web.xml está assim:

	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>*.jsf</url-pattern>
	</servlet-mapping>

Então, fiz uns testes, e nada.
Notei que a action exeduta corretamente, o managedbean executa com sucesso, retorna a String:

return "/pages/marca/edit.jsf?faces-redirect=true";

Mas ai é exibida uma tela em branco.

Posta como fica a URL ao redirecionar. Provavelmente está colocando uma URL que não existe.

Está assim:

http://localhost:8080/federal/pages/marca/edit.jsf

Voce já olhou no do faces config, pode ser isto… o mapeamento da navegação

Abraços.

Pessoal, me desculpem!!

Falha minha, esqueci de add o template na página

<ui:composition template="…/template/template.xhtml">

Desde já agradeço a paciencia…
:oops:

Alguém se habilita sobre esse erro: Invalid byte 2 of 3-byte UTF-8 sequence.

OI!!

como vc colocou no template eu uso assim

[code]<?xml version='1.0' encoding='UTF-8' ?>

<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />[/code]

Nunca tive problema com isto…

Bom dia,

Eu tenho por habito quebrar as páginas em vários arquivos, veja:

form.xhtml

&lt;ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.prime.com.tr/ui"&gt;

	&lt;h:panelGrid id="grid" columns="1"&gt;
		&lt;h:outputLabel for="marca"  value="#{rotulo.marca}" /&gt;
		&lt;p:inputText id="marca" value="#{marcaBean.marca.descricao}" required="true" /&gt;
		&lt;p:message for="marca" /&gt;
	&lt;/h:panelGrid&gt;
&lt;/ui:composition&gt;

edit.xhtm

&lt;ui:composition template="../template/template.xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.prime.com.tr/ui"&gt;

    &lt;ui:define name="pageTitle"&gt;
        &lt;h:outputText value="#{rotulo.titulo}"&gt;&lt;/h:outputText&gt;
    &lt;/ui:define&gt;

	&lt;ui:define name="content"&gt;
		&lt;h:form id="form" prependId="true"&gt;
			&lt;p:panel header="Edicao de Marcas"&gt;
				&lt;ui:include src="form.xhtml" /&gt;
				<br />
				&lt;p:commandButton id="btnSalvar" action="#{marcaBean.update}" value="#{rotulo.botao_salvar}" image="ui-icon ui-icon-disk" ajax="false"/&gt;
				&lt;p:commandButton id="btnVoltar" action="#{marcaBean.list}" value="#{rotulo.botao_voltar}" image="ui-icon ui-icon-close" ajax="false" immediate="true"/&gt;
			&lt;/p:panel&gt;
		&lt;/h:form&gt;
	&lt;/ui:define&gt;
&lt;/ui:composition&gt;

Note que na form, não há referencia ao template template="../template/template.xhtml", aí estáva todo problema dei um copiar/colar nas demais paginas e não notei isso.

Agora em relação ao encoding…vou colocar <meta http-equiv=“Content-Type” content=“text/html; charset=UTF-8” /> para ver o que ocorre, estava sem.

Olá, não foi necessário colocar o "meta", apenas adicionei no topo da página

&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt;

Resolvido.

Obrigado.

Usa de preferência na sua template assim

<?xml version='1.0' encoding='UTF-8' ?>