Aplicativo de questionário online: revisão do questionário



Nesta postagem, adicionamos a funcionalidade de revisão do questionário ao nosso Aplicativo de questionário online. O usuário pode ver as respostas corretas para todas as perguntas do questionário.

Esta é a terceira postagem na série de criação de um aplicativo de teste online usando JSP Servlet.

Se você não leu as postagens anteriores, leia-as, pois isso tornará mais fácil para você seguir esta postagem e entendê-la completamente.





Parte 1 -

Parte 2 - Aplicativo de teste - Implementando cronômetro de contagem regressiva



Nesta postagem, vamos adicionar as seguintes funcionalidades ao nosso aplicativo de teste

1. Oferecendo ao usuário a opção de revisar suas respostas ao concluir o questionário

2. Marcando as respostas do usuário como corretas ou incorretas



3. Marcando as perguntas não tentadas como não respondidas

Abaixo está o instantâneo da página de resultados do questionário criada.

estrutura baseada em dados em selênio webdriver

Página de resultados do questionário

O que mais precisamos para fazer a funcionalidade de revisão funcionar?

O usuário pode finalizar o questionário a qualquer momento, ao finalizar o questionário terá a opção de revisar suas respostas. Se o usuário não responder a uma pergunta e ignorá-la clicando no botão seguinte, essa pergunta será mostrada como sem resposta na página de revisão do exame.

Para fornecer ao usuário o resumo do questionário, tudo o que precisamos fazer é salvar as respostas do usuário e, quando ele terminar, compará-lo com a resposta real da pergunta.

Se a resposta do usuário corresponder à resposta correta da pergunta, exibimos o símbolo correto, senão o símbolo de cruz (x).

Aplicativo de teste online

Adicionaremos um novo controlador chamado ReviewController, que extrairá todos os dados e os enviará para uma página JSP para mostrar.

Nota: Estamos buscando perguntas do arquivo XML quando o usuário clica no botão seguinte ou anterior.

Suponha que um usuário inicie um questionário e tente apenas uma pergunta e, em seguida, clique no botão Concluir.

Agora, na página de revisão do questionário, temos que mostrar todas as perguntas com suas opções e a resposta do usuário, esteja ela correta ou não. Uma vez que, neste cenário, o usuário não conclui o questionário inteiro, o restante das 9 perguntas serão mostradas como sem resposta.

Portanto, quando o usuário clica em Review Quiz para ver suas respostas junto com a resposta correta para aquela pergunta, temos que buscar todas as perguntas do arquivo XML e sua resposta correta.

Estrutura do projeto no IDE Eclipse

Nota: Acabamos de incluir um novo controlador ReviewController.

ReviewController.java

@WebServlet ('/ exam / review') public class ReviewController estende HttpServlet {private static final long serialVersionUID = 1L / ** * @see HttpServlet # HttpServlet () * / public ReviewController () {super () // TODO gerado automaticamente construtor stub} / ** * @see HttpServlet # doGet (solicitação HttpServletRequest, resposta HttpServletResponse) * / protected void doGet (solicitação HttpServletRequest, resposta HttpServletResponse) lança ServletException, método Exame IOException {// TODO Exame gerado automaticamente request.getSession (). getAttribute ('currentExam') request.setAttribute ('totalQuestion', exam.getTotalNumberOfQuestions ()) ArrayList reviewQuestionList = new ArrayList () Documento dom = exam.getDom () para (int i = 0i

Nota: Eu configurei todas as informações necessárias em um ArrayList de QuizQuestion e configurei esse ArrayList como um atributo no escopo da solicitação.

ArrayList reviewQuestionList = new ArrayList () request.setAttribute ('reviewQuestions', reviewQuestionList)

Na página JSP, temos que apenas recuperar os valores armazenados no atributo reviewQuestions.
Criei uma página JSP chamada examReview.jsp, que mostrará o resumo do questionário.

Mostrando QuizQuestion junto com opções

Na página JSP, estamos usando JSTL c: forEach para iterar sobre a lista de QuizQuestion que foi definida por ReviewController

  
$ {counter.count}. $ {question.question}

$ {counter.count}. $ {option}

Mostrando a resposta correta

Observe que, no arquivo XML, armazenei opções começando no índice 0.

como usar o método tostring

É por isso que adicionamos um enquanto mostramos a resposta correta ao usuário, já que é intuitivo para o usuário.

Resposta correta: $ {question.correctOptionIndex + 1} 

Marcando uma pergunta sem resposta

Não é obrigatório para o usuário tentar todas as perguntas. Ele pode simplesmente pular clicando no próximo botão. Então, como descobrimos se uma pergunta foi respondida ou não?

Fiz uma alteração no construtor de Exame, de modo que, quando criamos um novo Exame, para cada pergunta também definimos a resposta do usuário como -1 inicialmente. Portanto, quando o usuário iniciar o questionário, teremos a seleção do usuário para cada pergunta, mesmo se o usuário apenas clicar no botão Concluir em qualquer pergunta entre o questionário.

Mas se o usuário realmente responder a uma pergunta, -1 será substituído pela seleção do usuário para essa pergunta.

java system.exit (1)
Exame público (teste de string, int totalNumberOfQuestions) lança SAXException, ParserConfigurationException, IOException, URISyntaxException {dom = CreateDOM.getDOM (test) para (int i = 0i

Portanto, se o usuário não responder a uma pergunta e pular para a próxima pergunta ou apenas clicar no botão Concluir, a resposta inicial -1 estará lá. Na página JSP, podemos comparar se a seleção do usuário é -1 ou não. Se for -1, significa que o usuário não respondeu a essa pergunta. E vamos marcar essa pergunta como sem resposta.

Sem resposta 

Mostrando a resposta do usuário

Se o usuário realmente respondeu a uma pergunta, a resposta inicial de -1 será substituída pela resposta do usuário e será substituída por 1,2,3 ou 4, pois temos 4 opções para cada pergunta.

Você escolheu: $ {question.userSelected} 

Estamos fazendo um teste c: if para garantir que o usuário realmente respondeu a uma pergunta e, em seguida, exibir a resposta do usuário.

Marcando uma resposta como correta

Se a seleção do usuário e a resposta correta para a pergunta corresponderem, exibimos uma imagem com uma marca correta.

   

Marcando uma resposta como incorreta

Um simples teste c: if é feito para comparar a resposta do usuário com a opção correta da pergunta. Se ambos não forem iguais, significa que o usuário respondeu à pergunta incorretamente e exibimos uma imagem com uma cruz.

   

Clique no botão de download para baixar o código.

[buttonleads form_title = ”Código de download” redirect_url = https: //edureka.wistia.com/medias/q2kgiq4su3/download? media_file_id = 67378724 course_id = 44 button_text = ”Código de download”]

Tem alguma questão para nós? Mencione isso na seção de comentários e entraremos em contato com você.

Postagens relacionadas: