FC ConcursosFC Concursos

Questão FC373687

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

Frameworks para Desenvolvimento

FCC · 2022

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) {

 

\(\overset{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. o botão do tipo submit do formulário deve conter o atributo value com o valor "login".
  2. o formulário deve conter o atributo submit com o valor "/login".
  3. o atributo action da tag form deve conter o valor "login".
  4. o formulário deve conter um campo flag com o valor "/login".
  5. o atributo method da tag form deve conter o valor "/login".
Mostrar resposta e comentário

Gabarito

Certo

Comentário do professor

O método receberLogin na classe Controle está mapeado com @RequestMapping(value = "/login", method = RequestMethod.POST). Por isso, o atributo action do formulário deve apontar para esse mesmo caminho para que a requisição seja entregue ao método correto.

Além disso, o formulário precisa usar o method POST para corresponder ao mapeamento do controller; sem isso, o Spring não invocará o método que espera requisições POST.

Também é necessário que os campos do formulário tenham os nomes correspondentes aos @RequestParam — ou seja, os inputs devem usar name="user" e name="senha" — assim os valores serão recebidos corretamente pelo método.

Em resumo: configurar action="/login" (ou "login" como URL relativa) e method="post" garante o mapeamento adequado do formulário ao método receberLogin.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo