Jsf

4 respostas
ricardocomp

Olá pessoal,
eu estou meio perdido e sem saber o que fazer
eu tenho um método em JSF:

public String novoTecnico() {
        //Aqui  erro pois não existe mais o construtor padrão.
        this.tecnico = new Tecnico();

        return "novo_tecnico";

    }

Só que eu andei conversando com um
amigo meu e ele me disse para retirar
o construtor padrão da classe Tecnico
pois não faz sentido existir um Técnico
sem um nome e todos os seus atributos
O construtor está amarrando o sistema
agora e o único construtor que existe
na minha classe agora é o:

public Tecnico(UsuarioSistema usuario, String nome, String telefone,
            String celular, String email) throws TecnicoException {

        this.usuario = usuario;
        this.nome = nome;
        //Faz as validações 
        this.setTelefone(telefone);
        this.setCelular(celular);
        this.email = email;

    }

Só que agora está dando erro pois o
construtor padão não existe mais,
será que alguém poderia me dar uma
ajuda de como eu devo criar um novo
Técnico com o construtor de vários
parâmetros?

[]'s.

4 Respostas

C

Oi ricardocomp, tudo bem?

Pelo que observei, essa classe não vai funcionar mesmo, pois não está passando nenhum argumento para o construtor da classe Técnico.

Você teria que instanciar a classe Técnico com algo parecido como:

this.tecnico = new Tecnico("usuario", "nome", "telefone",   "celular", "email");
jyoshiriro

Amigo,

ou você entendeu mal o que seu colega disse ou ele falou besteira mesmo.

De fato, não faz sentido um técnico sem atributos como nome e outros. Mas se for pensar assim, não faz sentido nada sem suas caracteristicas (pessoas, frutas, animais, etc etc). Nem por isso devemos deixar de usar construtores padrão nas classes. Não é porque você instancinou um tecnico sem característica nenhuma que ele ficará asssim sempre. No decorrer do código você pode ir incluindo suas características por meio dos “setters” ou qualquer outro método que desejar.

Quanto ao seu código: O compilador inclui um construtor padrão em sua classe automaticamente, caso não exista nenhum construtor implementado. Caso pelo menos um construtor diferente do padrão existir na classes, o compilador já não inclui o padrão. Logo, no seu código ou você passa sempre a usar o construtor parametrizado que implementou ou cria o construtor padrão na classe Tecnico.

Espero ter ajudado.

LPJava

naquele caso ali vc deve ter um construtor sem argumentos, pois vc chamou ele na classe que representar o controler do seu JSF. Veja um exemplo bem pratico.

http://blog.camilolopes.com.br/?p=1228

*olhe apenas o codigo JSF, esqueça o hibernate ou qualquer outra coisa.

ricardocomp

Olá pessoal,
muito obrigado mesmo a todos pela ajuda,
carlosbarbero obrigado pela dica, LPJava obrigado
pela indicação e já estou dando uma olhada aqui
no trecho do JSF na parte do controlador

visitante  = new Visitante();

e jyoshiriro refleti muito sobre o que você me disse
e realmente você tem razão muito obrigado pela ajuda.

Abraço à todos.

Criado 23 de dezembro de 2009
Ultima resposta 24 de dez. de 2009
Respostas 4
Participantes 4