viewName e attributeName não podem ser resolvidos como variáveis

4 respostas Resolvido
javaspring-boot
T

Fala ai “Hipsters”…

Uma pequena dúvida, eis que eu estava programando enquanto participava de um cursinho free de Programação Spring Boot.

e acabei travando nessas linhas…

@Autowired
blogNoticiaService blogNoticiaService;

@RequestMapping(value = "/posts", method = RequestMethod.GET)
public ModelAndView getPosts() {
	ModelAndView mv = new ModelAndView(viewName: "posts");
	List<Post> posts = blogNoticiaService.findAll();
	mv.addObject(attributeName: "posts", posts);
	return mv;
}

Um detalhe, estou usando o “Eclipse” com o plugin do Spring Boot. E o Eclipse reclama dizendo que os comandos attributeName e o viewName são variáveis!!

4 Respostas

S
Solucao aceita

Na verdade não é o eclipse, é o compilador Java quem reclama.
Realmente você não tem nenhuma variável chamada attributeName nem viewName.

Mas o problema na verdade é de sintaxe, o correto seria assim:

@RequestMapping(value = "/posts", method = RequestMethod.GET)
public ModelAndView getPosts() {
    ModelAndView mv = new ModelAndView("posts");
    List<Post> posts = blogNoticiaService.findAll();
    mv.addObject("posts", posts);
    return mv;
}

Mas se quiser usar variáveis, nada impede de fazer assim:

@RequestMapping(value = "/posts", method = RequestMethod.GET)
public ModelAndView getPosts() {
    String viewName = "posts";
    ModelAndView mv = new ModelAndView(viewName);
    List<Post> posts = blogNoticiaService.findAll();
    String attributeName = "posts";
    mv.addObject(attributeName, posts);
    return mv;
}
T

Muito Obrigado @staroski pela ajuda irmão… até comentei de você lá no meu recente commit, dê uma olhada: https://github.com/tncardoso29/blogNoticias/commit/0173dcd36387b4f81fea1ba657ccc77de77f3d96

Depois do almoço irei continuar esse projeto, ai te direi mais se esse comando novo que você me sugeriu, não deu outros problemas.

OBRIGADO MAIS UMA VEZ!!

S

Que comando?
Isso não são comandos.
Você só estava com um erro de sintaxe na passagem de parâmetros dos métodos invocados.
:wink:

T

Tá certo cara… Ta certo…

Mas veja só que coisa, eu estou rodando uma página HTML aqui no Spring Boot desse projeto e ele não está me exibindo os dados registrados no DB. Cheguei a checar se havia registros e tem sim… 4 por sinal.

Estou checando o HTML do Bootstrap e mais as classes do Spring Boot, nada fora do normal.

Criado 2 de julho de 2020
Ultima resposta 3 de jul. de 2020
Respostas 4
Participantes 2