Ação JSF

2 respostas
D

Olá Pessoal!
Estou desenvolvendo uma aplicação com JSF e gostaria que ao clicar no botão salvar o ManagedBean chamasse a classe que grava no BD.
O que eu fiz não está funcionando, ao clicar no botão, apenas uma URL com os dados que digitei nos campos é criada na barra de endereços do navegador e nada mais acontece, nenhum tipo de erro.

Segue meu faces-config, minha página JSF e meu Bean.
Caso alguém possa ajudar,

Obrigado

Faces-config
<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xi="http://www.w3.org/2001/XInclude"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
    <managed-bean>
        <managed-bean-name>
            cadastroContaBean
        </managed-bean-name>
        <managed-bean-class>
            beans.ContaBean
        </managed-bean-class>
        <managed-bean-scope>
            session
        </managed-bean-scope>
    </managed-bean>
</faces-config>
Pagina JSF
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<head>
<title>Cadastro de Contas</title>
<link rel="stylesheet" type="text/css" href="css/estilo.css">
</head>
<body>
<f:view>
	<form id="frm">
	<center>
	<h1>Cadastro de Contas</h1>
	</center>
	<h:panelGrid columns="2">
		<h:panelGroup>
			<h:outputLabel value="Código:">
				<h:inputText alt="Código" label="Código" id="codigo" maxlength="5"
					size="10" value="#{cadastroContaBean.contaEdicao.id}" />
			</h:outputLabel>
		</h:panelGroup><br></br>
		<h:panelGroup>
			<h:outputLabel value="Descrição">
				<h:inputText alt="Descrição" id="descricao" size="20"
					value="#{cadastroContaBean.contaEdicao.descricao}" />
			</h:outputLabel>
		</h:panelGroup>
		<h:panelGroup>
			<h:outputLabel value="Valor">
				<h:inputText value="#{cadastroContaBean.contaEdicao.valor}"
					label="Valor" id="valor" size="10" />
				<f:convertNumber minFractionDigits="2" />
			</h:outputLabel>
		</h:panelGroup>
		<h:panelGroup>
			<h:outputLabel value="Data vencimento:" />
			<h:inputText id="dataVencimento" size="12" maxlength="10"
				value="#{cadastroContaBean.contaEdicao.dataVencimento}"
				required="true" label="Data vencimento">
				<f:convertDateTime pattern="dd/MM/yyyy" />
			</h:inputText>
		</h:panelGroup>
		<h:panelGroup>
			<h:commandButton value="salvar"
				actionListener="#{cadastroContaBean.salvar}" styleClass="botao" />
			<h:commandButton value="Cancelar" action="menu" immediate="true"
				styleClass="botao" />
		</h:panelGroup>
		</h:panelGrid></form>
	
</f:view>
</body>
</html>
Bean
package beans;

import java.util.ArrayList;
import java.util.List;

import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;

import model.Conta;
import model.TipoConta;
import bd.ContaService;

public class ContaBean {
	private Conta contaEdicao;

	public ContaBean() {
		this.contaEdicao = new Conta();
	}

	public void salvar(ActionEvent event) {
		try {
			ContaDAO conta = new ContaDAO();
			conta.salvar(this.contaEdicao);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public Conta getContaEdicao() {
		return contaEdicao;
	}

	public void setContaEdicao(Conta contaEdicao) {
		this.contaEdicao = contaEdicao;
	}
}

2 Respostas

alves.Felipe

tenta fazer assim:

public String salvar() {   
        try {   
            ContaDAO conta = new ContaDAO();   
            conta.salvar(this.contaEdicao);   
        } catch (Exception e) {   
            e.printStackTrace();   
        }   
     return "";
    }

<h:commandButton value="salvar" action="#{cadastroContaBean.salvar}" styleClass="botao" />

victormenegusso

mude o <form id="frm"> para <h:form id="frm">

Criado 22 de dezembro de 2010
Ultima resposta 22 de dez. de 2010
Respostas 2
Participantes 3