Pular para o conteúdo principal

Questão de Programação — Frameworks em Programação — FCC 2022

ProgramaçãoFrameworks em Programação
Código
fc067314
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.


package com.funcionarios.empresa.controller;

import com.funcionarios.empresa.model.*;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class Controle {

        private LoginDao dao;
        private Login login;

        @RequestMapping(value = "/login", method = RequestMethod.POST)
        @ResponseBody
        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.
                    }
       }
}
Em um formulário de uma página HTML um analista deseja enviar o conteúdo dos campos user e senha em uma requisição HTTP POST para o método receberLogin da classe Controle, ao se clicar em um botão do tipo submit do formulário. Para que esse envio ocorra e seja mapeado corretamente
  1. Ao botão do tipo submit do formulário deve conter o atributo value com o valor "login".
  2. Bo formulário deve conter o atributo submit com o valor "/login".
  3. Co atributo action da tag form deve conter o valor "login".
  4. Do formulário deve conter um campo flag com o valor "/login".
  5. Eo atributo method da tag form deve conter o valor "/login".
Revelar gabarito e comentário

GabaritoC — o atributo action da tag form deve conter o valor "login".

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”.

Mapeamento de requisição HTTP POST no Spring MVC

Gabarito: letra C. Para que o formulário HTML envie os campos user e senha via POST para o método receberLogin, o atributo action da tag <form> deve conter o valor "login" (ou "/login"), pois o método está anotado com @RequestMapping(value = "/login", method = RequestMethod.POST). As demais alternativas confundem o propósito dos atributos do formulário.

A questão testa o conhecimento da integração entre formulários HTML e controladores Spring MVC. O método receberLogin está mapeado para a URL /login e aceita apenas requisições POST. O formulário deve usar method="post" e action="login" (ou "/login").

Alternativa A — ❌ Incorreta

O atributo value do botão submit define o texto exibido no botão e, quando presente, envia um par nome=valor no formulário, mas não determina a URL de destino. A URL de destino é definida pelo action.

Alternativa B — ❌ Incorreta

Não existe o atributo submit na tag <form>. Os atributos relevantes são action (URL de destino) e method (método HTTP).

Alternativa C — ✅ Correta ⟵ GABARITO

O atributo action especifica para qual URL os dados do formulário serão enviados. Como o controlador mapeia /login com POST, o action deve apontar para essa URL. O valor pode ser relativo ("login") ou absoluto ("/login"), desde que corresponda ao mapeamento.

Alternativa D — ❌ Incorreta

Não existe "campo flag" no HTML. Essa alternativa é fictícia e não corresponde a nenhum atributo válido de formulário.

Alternativa E — ❌ Incorreta

O atributo method define o verbo HTTP (GET, POST, etc.), não a URL. Para enviar via POST, o correto é method="post", e não method="/login".

PEGA ESSA DICA!

No Spring MVC, a anotação @RequestMapping ou @PostMapping define a URL e o método HTTP. No HTML, o formulário deve combinar action (URL) com method (GET/POST). Grave: action = caminho do servidor, method = verbo HTTP.

Gabarito: letra C.

Link permanente: /questoes/fc067314