Questão de Programação — Frameworks em Programação — FCC 2022
Programação›Frameworks em Programação
Código
fc067313
Banca
FCC
Órgão
TRT - 5ª Região (BA)
Ano
2022
Cargo
Analista Judiciário - Tecnologia da Informação
Atenção: O código a seguir é parte de uma aplicação, em condições ideais, que utiliza o Spring Framework e Spring Boot. Utilize
esse código para responder a questão.
public ModelAndView receberLogin(@RequestParam(name = "user") String user,
@RequestParam(name = "senha") String senha, Model model) {
dao = new LoginDao();
login = dao.verificarLogin(user);
if (login == null) {
I;
ModelAndView mv = new ModelAndView();
mv.setViewName("erros.html");
return mv;
} else {
//Código oculto intencionalmente aqui, que retorna um objeto mv
//com dados de autorização de acesso do usuário.
}
}
}
Para que o objeto mv retornado no método receberLogin contenha um atributo chamado erro com o valor Acesso negado, de forma que esse atributo possa ser recebido e exibido na página erros.html, caso seja necessário, a lacuna I deve ser corretamente preenchida com
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Spring MVC – Adição de atributos ao modelo
Gabarito: letra E. No controlador Spring MVC, para que um atributo seja disponibilizado à view (página HTML), deve-se adicioná-lo ao modelo utilizando o método addAttribute do objeto Model ou addObject do ModelAndView. A lacuna I deve ser preenchida com model.addAttribute("erro", "Acesso negado"), que é a sintaxe correta da interface Model.
A questão testa o conhecimento dos métodos disponíveis nos objetos Model, ModelAndView, HttpServletRequest e HttpServletResponse no contexto do Spring MVC. O código já recebe um parâmetro model do tipo org.springframework.ui.Model, e o retorno do método é um ModelAndView. Para adicionar o atributo de forma que fique acessível na view erros.html, a chamada correta é model.addAttribute("erro", "Acesso negado").
Alternativa A — ❌ Incorreta
response.addAttribute("erro", "Acesso negado") – O objeto HttpServletResponse não possui o método addAttribute. Esse método não existe na API Servlet. Atributos para a view devem ser inseridos no modelo, não na resposta HTTP.
Alternativa B — ❌ Incorreta
model.setAttribute("erro", "Acesso negado") – A interface Model do Spring não possui método setAttribute. O método correto é addAttribute. Essa troca de nome é uma armadilha comum.
Alternativa C — ❌ Incorreta
responde.sendRedirect("erro", "Acesso negado") – Além do nome responde estar incorreto (supostamente response), o método sendRedirect redireciona para outra URL e não aceita parâmetros de atributo. Não é a forma de adicionar dados ao modelo.
Alternativa D — ❌ Incorreta
request.setParameter("erro", "Acesso negado") – O objeto HttpServletRequest não possui método setParameter. Parâmetros de requisição são apenas de leitura. Atributos de modelo não são parâmetros; são adicionados através do modelo Spring.
Alternativa E — ✅ Correta ⟵ GABARITO
model.addAttribute("erro", "Acesso negado") – Esta é a chamada correta para adicionar um atributo ao Model Spring. O atributo será automaticamente disponibilizado à view, podendo ser acessado na página HTML por tecnologias como Thymeleaf ou JSP.
NÃO CAIA NESSA!
A banca explora a confusão entre addAttribute e setAttribute. O método setAttribute existe em HttpSession e HttpServletRequest, mas não na interface Model. Além disso, mistura objetos de resposta e requisição que não têm o método addAttribute. Preste atenção ao objeto correto e ao nome do método.