Olá boa tarde estou com um problema
Topico topico = form.converter(cursoRepository);
está linha n está compilando e eu escrevi tudo direitinho
o que faço?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá boa tarde estou com um problema
Topico topico = form.converter(cursoRepository);
está linha n está compilando e eu escrevi tudo direitinho
o que faço?
Oi Wander,
Posta aqui como está o seu código. Do controller e da classe form
package br.com.alura.forum.controller; import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.source.ConfigurationPropertyName.Form; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController;
import br.com.alura.forum.controller.dto.TopicoDTO; import br.com.alura.forum.controller.form.TopicoForm; import br.com.alura.forum.controller.repository.CursoRepository; import br.com.alura.forum.modelo.Topico; import br.com.alura.forum.repository.TopicoRepository;
@RestController @RequestMapping("/topicos") public class TopicosController {
@Autowired
private TopicoRepository topicoRepository;
@Autowired
private CursoRepository cursoRepository;
@GetMapping
public List <TopicoDTO> lista(String nomeCurso) {
if (nomeCurso == null) {
List<Topico> topicos = topicoRepository.findAll();
return TopicoDTO.converter(topicos);
} else {
List<Topico> topicos = topicoRepository.findByCursoNome(nomeCurso);
return TopicoDTO.converter(topicos);
}
}
@PostMapping
public void cadastrar(@RequestBody TopicoForm topico) {
Topico topico = form.converter(cursoRepository);
topicoRepository.save(topico);
}}
esse é o controller
package br.com.alura.forum.controller.form;
import br.com.alura.forum.controller.repository.CursoRepository; import br.com.alura.forum.modelo.Curso; import br.com.alura.forum.modelo.Topico;
public class TopicoForm {
private String titulo;
private String mensagem;
private String nomeCurso;
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getMensagem() {
return mensagem;
}
public void setMensagem(String mensagem) {
this.mensagem = mensagem;
}
public String getNomeCurso() {
return nomeCurso;
}
public void setNomeCurso(String nomeCurso) {
this.nomeCurso = nomeCurso;
}
public Topico converter(CursoRepository cursorepository) {
Curso curso = cursorepository.findByNome(nomeCurso);
return new Topico(titulo, mensagem, curso);
}}
e esse é o Form
O problema está na assinatura do método no controller:
public void cadastrar(@RequestBody TopicoForm topico)
O parametro está com nome topico, mas deveria ser form:
public void cadastrar(@RequestBody TopicoForm form)
funcionou obrigado