Paginas JSF perdendo objetos (request)

2 respostas
java
thimor

Ola, Estou com um bug aqui na navegacao de paginas usando escopo de request. Estou com um projeto JSF usando maven, usando essas bibliotecas:

`

javax
javaee-web-api
7.0
provided

<!-- JSF 2.2 -->
    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.faces</artifactId>
        <version>2.2.0</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp.jstl</groupId>
        <artifactId>javax.servlet.jsp.jstl-api</artifactId>
        <version>1.2.1</version>
    </dependency>

    <!-- Hibernate -->        
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.1.0.Final</version>
    </dependency>
    
    <!-- Drivers de banco de dados -->  
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.36</version>
    </dependency>
</dependencies>

`

O que acontece. Eu tenho uma pagina que lista os objetos. tem uma coluna de acoes, editar, excluir, visualizar. Porem quando eu clico na ação, ele nao vai para pagina de destino e limpa a consulta.

Eu fiz um mesmo projeto no netbeans, sem ser maven, e adicionando as bibliotecas do proprio netbeans. Utilizando os mesmos codigos de paginas e o mesmo bean. E essa navegacao funciona. Eu abro o cadastrar.xhtml, cadastro, direciona para o listar.xhtml, depois se eu clicar em visualizar, editar e excluir, funciona.

Eu quero saber se alguem sabe dizer se pode ser um problema dessas versoes de bibliotecas utilizadas.

2 Respostas

igor_ks

Mostre seu ManagedBean, lembre-se que com o Scope Request, ele é limpado a cada requisição feita

thimor

isso eu sei. meu questionamento eh que duas aplicacoes que fazem a mesma coisa, numa funciona na outra nao. vou colar os dois managed beans, um eh produto o outro secao para facilitar o endendimento. O que funciona é o SecaoController

`@ManagedBean
@RequestScoped
public class ProdutoController implements Serializable {

private Produto produto;
private List<Produto> produtos;
private ProdutoService produtoService = new ProdutoService();

public ProdutoController() {
}

@PostConstruct
public void init() {
    produto = new Produto();
    produtos = new ArrayList<>();
}

public Produto getProduto() {
    return produto;
}

public void setProduto(Produto produto) {
    this.produto = produto;
}

public List<Produto> getProdutos() {
    return produtos;
}

public void setProdutos(List<Produto> produtos) {
    this.produtos = produtos;
}

public String cadastrar() {
    return "cadastrar.faces";
}

public String listar() {
    produtos = produtoService.listar();
    return null;
}

public String salvar() {
    produtoService.salvar(produto);
    return "listar.faces";
}

public String alterar() {
    return "editar.faces";
}

}`

`@ManagedBean
@RequestScoped
public class SecaoController implements Serializable {

private Secao secao;
private List<Secao> secoes;
private SecaoDao dao = new SecaoDao();
private String parametroPesquisa;

public SecaoController() {
}

@PostConstruct
public void init() {
    secao = new Secao();
    secoes = dao.listar();
}

public Secao getSecao() {
    return secao;
}

public void setSecao(Secao secao) {
    this.secao = secao;
}

public List<Secao> getSecoes() {
    return secoes;
}

public void setSecoes(List<Secao> secoes) {
    this.secoes = secoes;
}

public String getParametroPesquisa() {
    return parametroPesquisa;
}

public void setParametroPesquisa(String parametroPesquisa) {
    this.parametroPesquisa = parametroPesquisa;
}


/*
 *  CRUD
 */
public String salvar() {
    dao.salvar(secao);
    secao = new Secao();
    return "pesquisar.faces";
}

public String alterar() {
    return "alterar.faces";
}

public String excluir() {
    return null;
}

public String listar() {
    secoes = dao.listar(parametroPesquisa);
    return null;
}

}

`

Criado 22 de fevereiro de 2016
Ultima resposta 22 de fev. de 2016
Respostas 2
Participantes 2