Problemas com JSF

4 respostas
F

Seguinte galera eu tinha um projetinho q no struts funcionava beleza ai to migrando ele para jsf mas ai quando clico no botão para inserir os dados do formulario no banco da o seguinte erro org.apache.jasper.el.JspMethodNotFoundException: /distrito/criarDistrito.jsp(20,16) '#{CRUDdistrito.criar}' Method not found: [email removido]()

criarDistrito.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <f:view>
            <h:form>
                Distrito: <h:inputText value="#{Distrito.nome}"/><br>
                <h:commandButton value="Enviar" action="#{CRUDdistrito.criar}"/>    
            </h:form>            
        </f:view>      
    </body>
</html>
CDRUdistrito.java
package br.com.controlear.dao;

import br.com.integrator.dao.ConnectionFactory;
import br.com.integrator.pojo.Distritos;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;


public class CRUDdistrito extends ConnectionFactory {
	public void criar(Distritos distritos) throws SQLException{
		String sql= "INSERT INTO controlear_distrito(dis_ds_distrito) VALUES (?)";
		PreparedStatement ps= getConexao().prepareStatement(sql);
		ps.setString(1, distritos.getNome());
		ps.execute();
		ps.close();		
	}
faces-config.xml
<faces-config version="1.2" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    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>Distrito</managed-bean-name>
        <managed-bean-class>br.com.integrator.pojo.Distritos</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
    <managed-bean>
        <managed-bean-name>CRUDdistrito</managed-bean-name>
        <managed-bean-class>br.com.controlear.dao.CRUDdistrito</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
</faces-config>

4 Respostas

Javabuntu

colega ele não está achando o método br.com.controlear.dao.CRUDdistrito.criar() no seu bean…

me parece que no seu faces-config vc declarou errado, vc colocou “controlear”, e não seria “controlar” :?:

<managed-bean-class>br.com.controlear.dao.CRUDdistrito</managed-bean-class>

é algum nome digitado errado que ele não está conseguindo chegar ao método… verifique isso acima…

flw Hewerton

F

:cry: Ja revisei a digitação esta tudo correto

rafaelsantini

A expressão #{CRUDdistrito.criar} tenta invocar o método criar() (sem parâmetros) da classe CRUDdistrito, porém o método chamado criar que existe nessa classe tem outra assinatura: criar(Distritos distritos).

albama

Olá , me parece que o metodo está recebendo o nome null , por isso nao consegue inserir

Crie um get e set para o atributo nome neste metodo , ou entao faz ele buscar este objeto .

Para verificar se o nome está aparecendo , use um sytem.out.println( Objeto.getNome());

Distrito: <h:inputText value="#{Distrito.nome}"/>

Acredito que seja isso.

Marco Aurélio

Criado 1 de fevereiro de 2008
Ultima resposta 6 de fev. de 2008
Respostas 4
Participantes 4