Jsf - navegação

7 respostas
F

Galera sou iniciante em jsf e tenho uma duvida… Minha jsp esta chamando um metodo da action ela executando belezinha mas ela nao muda de pagina … eu gostaria que mostrasse o resultado em uma outra tela algem podeia me ajudar…

meu metodo na action

public String altera(){
	HttpServletRequest request=getRequest();
	ProdutoTeste pt = (ProdutoTeste)(request.getAttribute("produtoTeste"));
	//ProdutoTeste pt = new ProdutoTeste();
	//pt.setNome(nome);
	System.out.println("Item:"+pt.getCod()+" - "+pt.getNome()+"  gravado com sucesso !!! ");
	//request.setAttribute("produtoTeste",pt);
	return "result";
}

no faces config

</navigation-case>
		<navigation-case>
		<from-action>#{produtoTesteAction.altera}</from-action>
		<from-outcome>result</from-outcome>
		<to-view-id>/funil/negocio/result.faces</to-view-id>
	</navigation-case>

alguem poderia me ajudar ???

7 Respostas

elugo

<navigation-rule> <from-view-id>/priv/sgc/central/PublicacaoDOPageForm.jsp</from-view-id> <navigation-case> <from-outcome>EditalPageForm</from-outcome> <to-view-id>/priv/sgc/central/EditalPageForm.jsp</to-view-id> </navigation-case> </navigation-rule>

Cara é o seguinte no <from-view-id> vc está disendo de onde a ação esta vindo
caso vc queira que em qualquer lugar coloque *.

no <from-outcome> vc esta atribuindo um nome para esse redirect no caso eu utilizei “EditalPageForm”
que quando utilizado vc irá ser direcionado para o <to-view-id>/priv/sgc/central/EditalPageForm.jsp</to-view-id>
que é uma página minha

espero q t ajude.

F

Elugo fiz conforme vc me orientou

<navigation-rule>
	<from-view-id>*</from-view-id>
	<navigation-case>
		<from-outcome>result</from-outcome>
		<to-view-id>/funil/negocio/result.faces</to-view-id>  <!-- Essa e a minha pagina que deveria abrir     -->
	</navigation-case>
</navigation-rule>

Mas agora quando eu chamo a ação ele chama a mesma pagina (test.faces), porem nao aparece nada… a tela fica em branco

L

cara posta seu arquivos completos aew,como tu mapeo no web.xml sua action que executa o metodo dai fica + facil de ajudar,e a pagina tbm.

F

No web.xml so tem as conf…

tiles-definitions /WEB-INF/tiles-defs.xml javax.faces.STATE_SAVING_METHOD client org.apache.myfaces.CHECK_EXTENSIONS_FILTER true org.apache.myfaces.PRETTY_HTML true org.apache.myfaces.ALLOW_JAVASCRIPT true org.apache.myfaces.DETECT_JAVASCRIPT false org.apache.myfaces.AUTO_SCROLL false org.apache.myfaces.READONLY_AS_DISABLED_FOR_SELECTS true org.apache.myfaces.RESOURCE_VIRTUAL_PATH /faces/myFacesExtensionResource org.apache.myfaces.ADD_RESOURCE_CLASS org.apache.myfaces.renderkit.html.util.DefaultAddResource org.apache.myfaces.webapp.StartupServletContextListener Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet *.faces SourceCodeServlet org.apache.myfaces.shared_tomahawk.util.servlet.SourceCodeServlet extensionsFilter org.apache.myfaces.webapp.filter.ExtensionsFilter uploadMaxFileSize 1m uploadThresholdSize 200k ajax4jsf org.ajax4jsf.Filter extensionsFilter /faces/myFacesExtensionResource/* extensionsFilter *.faces ajax4jsf Faces Servlet REQUEST FORWARD INCLUDE 30 index.jsp java.lang.Exception /erro.jsp

a action :

import java.util.ArrayList;

import javax.faces.context.ExternalContext;

import javax.faces.context.FacesContext;

import javax.faces.model.SelectItem;

import javax.servlet.http.HttpServletRequest;

import dvm.funil.dao.produto.ProdutoTesteDAO;
import dvm.funil.model.produto.ProdutoTeste;

public class ProdutoTesteAction {

private HttpServletRequest getRequest()
{
	FacesContext faces=FacesContext.getCurrentInstance();
	ExternalContext external=faces.getExternalContext();
	HttpServletRequest request=(HttpServletRequest) external.getRequest();
	return request;
}
public String altera(){
	HttpServletRequest request=getRequest();
	ProdutoTeste pt = (ProdutoTeste)(request.getAttribute("produtoTeste"));
	//ProdutoTeste pt = new ProdutoTeste();
	//pt.setNome(nome);
	System.out.println("Item:"+pt.getCod()+" - "+pt.getNome()+"  gravado com sucesso !!! ");
	//request.setAttribute("produtoTeste",pt);
	return "result";
}

public ArrayList<ProdutoTeste> getConsultar(){
	ArrayList<ProdutoTeste> array = new ArrayList<ProdutoTeste>();
	//ArrayList<String> array = new ArrayList<String>();
	ProdutoTesteDAO pDAO = new ProdutoTesteDAO();
	array=pDAO.getConsulta();	
	return array;
}
public ArrayList<SelectItem> getListMenu(){
	ProdutoTesteDAO pDAO = new ProdutoTesteDAO();
	ArrayList<SelectItem> arraySel = new ArrayList<SelectItem>();
	ArrayList<ProdutoTeste> array = pDAO.getConsulta();
	for(ProdutoTeste p : array){
		arraySel.add(new SelectItem(p.getCod(),p.getNome()));
	}
	return arraySel;
}

}

os os action só estão mapeados no faces config…

F

Galera muito obrigado !! já concegui !!! da forma que o Elugo me informou deu certo só tive que reconstruir o projeto… vlew até +

F

ou melhor tive q adicionar

result /funil/negocio/result.faces

Ta certo fazer isso ??? valew !!

F

erro primario mas eu o cometi nao pode usar ajax:comandButton

valew

ou melhor tive q adicionar

result /funil/negocio/result.faces

Ta certo fazer isso ??? valew !!

Criado 19 de novembro de 2008
Ultima resposta 25 de nov. de 2008
Respostas 7
Participantes 3