The class 'entities.MontagemDeComputador' does not have the property 'placaMae'

Estou arrancando os cabelos com esse erro aqui, se alguem puder me ajudar agradeço muito.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://xmlns.jcp.org/jsf/html"
	xmlns:p="http://primefaces.org/ui"
	xmlns:f="http://xmlns.jcp.org/jsf/core">

<h:head>
	<title>KArtHugo PCs</title>
</h:head>

<h:body>
	<h:form>
		<p:growl id="growl" showDetail="true" sticky="true" />
		<p:tabMenu>
			<p:menuitem icon="ui-icon-disk" value="PCs Montados"
				url="pcsMontados.xhtml" />
			<p:menuitem icon="ui-icon-disk" value="Monte seu PC"
				url="createPc.xhtml" />
		</p:tabMenu>

		<p:panelGrid style="margin-botton:20px" columns="2" layout="grid">
			<p:outputLabel value="Nome do PC:" />
			<p:inputText id="nomePc" label="nome"
				value="#{computadorService.pc.nome}" style="width:350px" />
				
			<p:outputLabel value="Placa mãe:" />
			<p:selectOneMenu id="placaMae" var="p" converter="ConversorPeca"
				style="width:350px" lazy="true" panelStyle="width:180px"
				value="#{computadorService.pc.placaMae}">
				<f:selectItems value="#{computadorService.pecas}" var="placaMae"
					itemLabel="#{placaMae.nome}" itemValue="#{placaMae}" />
			</p:selectOneMenu>

			<p:outputLabel value="Processador:" />
			<p:selectOneMenu id="cpu" var="c" converter="ConversorPeca"
				panelStyle="width:350px" style="width:350px"
				value="#{computadorService.pc.cpu}">
				<f:selectItems value="#{computadorService.pecas}" var="cpu"
					itemLabel="#{cpu.nome}" itemValue="#{cpu}" />
			</p:selectOneMenu>

Classe Bean

package beans;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;

import entities.MontagemDeComputador;
import entities.Peca;

@ApplicationScoped
@ManagedBean(name = "computadorService")
public class ComputadorBean {
	// Gerencia pecas
	private List<MontagemDeComputador> pcs = new ArrayList<MontagemDeComputador>();
	private MontagemDeComputador pc = new MontagemDeComputador();
	private MontagemDeComputador pcBuscado = new MontagemDeComputador();
	private MontagemDeComputador pcEditado;
	private Peca placaMae;
	private Peca fonte;
	private Peca cpu;
	private Peca ram;
	private Peca hd;
	private Peca video;
	private static int cont = 0;
	private int qntRam;
	private int qntVideo;
	private int qntHd;
	private List<Peca> pecas = new ArrayList<Peca>();

	public Peca getPlacaMae() {
		return placaMae;
	}

	public void setPlacaMae(Peca placaMae) {
		this.placaMae = placaMae;
	}

	public Peca getFonte() {
		return fonte;
	}

	public void setFonte(Peca fonte) {
		this.fonte = fonte;
	}

	public Peca getCpu() {
		return cpu;
	}

public MontagemDeComputador getPcEditado() {
	return pcEditado;
}

public void setPcEditado(MontagemDeComputador pcEditado) {
	this.pcEditado = pcEditado;
}

@PostConstruct
public void init() {
	pecas.add(new Peca("Placa Mae Gigabyte", "placaMae", 80, 1));
	pecas.add(new Peca("Hyper Fury 4gb", "ram", 50, 0));
	pecas.add(new Peca("Intel Core I5", "cpu", 300, 1));
	pecas.add(new Peca("Nividia GEForce 1080", "video", 500, 0));
	pecas.add(new Peca("FOnte 500w", "fonte", 200, 1));
	pecas.add(new Peca("Hd 1 terabyte", "hd", 100, 0));
}

public void editarPC(MontagemDeComputador pcEdit) throws IOException {

	setPcEditado(pcEdit);
	int ind = pcs.indexOf(pcEditado);
	FacesContext.getCurrentInstance().addMessage(null,
			new FacesMessage("PC " + (pcEdit.getNome()) + " indice: " + ind));

}

public void salvarPc() throws IOException {
	double precoTotal = (pc.getRam().getPreco() * pc.getRam().getQuant())
			+ (pc.getHd().getPreco() * pc.getHd().getQuant())
			+ (pc.getVideo().getPreco() * pc.getVideo().getQuant()) + (pc.getCpu().getPreco())
			+ (pc.getFonte().getPreco()) + (pc.getPlacaMae().getPreco());
	pc.setPrecoTotal(precoTotal);
	FacesContext.getCurrentInstance().getExternalContext().redirect("pcsMontados.xhtml");
	FacesContext.getCurrentInstance().addMessage(null,
			new FacesMessage("PC " + pc.getNome() + "Criado", "O preco total foi de " + pc.getPrecoTotal()));
	pcs.add(pc);
	pc = new MontagemDeComputador();
}

Classe MontagemDeComputador

package entities;

public class MontagemDeComputador {
	private Peca cpu;
	private Peca placaMae;
	private Peca ram;
	private Peca hd;
	private Peca video;
	private Peca fonte;
	private double precoTotal;
	private String nome;
	private int id;
	private static int cont = 0;

	public Peca getCpu() {
		return cpu;
	}

	public void setCpu(Peca cpu) {
		this.cpu = cpu;
	}

	public Peca getPlacaMae() {
		return placaMae;
	}

	public void setPlacaMae(Peca placaMae) {
		this.placaMae = placaMae;
	}

	public Peca getRam() {
		return ram;
	}

	public void setRam(Peca ram) {
		this.ram = ram;
	}

	public double getPrecoTotal() {
		return precoTotal;
	}

	public void setPrecoTotal(double precoTotal) {
		this.precoTotal = precoTotal;
	}

	public Peca getHd() {
		return hd;
	}

	public void setHd(Peca hd) {
		this.hd = hd;
	}

	public Peca getVideo() {
		return video;
	}

	public void setVideo(Peca video) {
		this.video = video;
	}

	public Peca getFonte() {
		return fonte;
	}

	public void setFonte(Peca fonte) {
		this.fonte = fonte;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public int getId() {
		return id;
	}

Esse erro normalmente da quando uma classe não tem o atributo ou o setter/getter correspodente… Mas nesse caso tem.

No seu bean você tem o set/get do atributo pc?

Se possível, de uma formatada melhor

1 curtida

Eu tenho o get e set do pc no meu bean, isso que é o mais estranho. E todos esses gets e sets foram gerados automaticamente, e eu ja revisei tudo o que podía ser revisado :v

public MontagemDeComputador getPc() {
return pc;
}

public void setPc(MontagemDeComputador pc) {
this.pc = pc;
}