Добавил:
Только когда поступишь в технический вуз поймешь на сколько ты гуманитарий Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
5
Добавлен:
15.02.2025
Размер:
3 Кб
Скачать
package com.example.demo.controller;

import com.example.demo.model.Vote;
import com.example.demo.repository.VoteRepository; // Ваш репозиторий для работы с данными
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class VoteController {

    @Autowired
    private VoteRepository voteRepository; // Инъекция зависимости репозитория

    // Отображение страницы голосования (GET-запрос)
    @GetMapping("/vote")
    public String showVotePage() {
        return "vote"; // Возвращает шаблон vote.html
    }

    // Обработка голосов (POST-запрос)
    @PostMapping("/vote")
    public String processVote(@RequestParam("option") String option, Model model) {
        // Проверяем правильность введённого варианта
        if ("Java".equals(option) || "Python".equals(option) || "C++".equals(option)) {
            voteRepository.save(new Vote(option)); // Сохраняем голос в репозитории
            model.addAttribute("message", "Спасибо за ваш голос!"); // Уведомление для пользователя
        } else {
            model.addAttribute("message", "Пожалуйста, выберите допустимый вариант!"); // Ошибка
        }
        return "vote"; // Возвращаемся на ту же страницу
    }

    // Вывод результатов голосования (GET-запрос)
    @GetMapping("/results")
    public String showResults(Model model) {
        // Считаем количество голосов для каждого варианта
        long javaVotes = voteRepository.countByOption("Java");
        long pythonVotes = voteRepository.countByOption("Python");
        long cppVotes = voteRepository.countByOption("C++");

        // Передаём данные в шаблон results.html
        model.addAttribute("javaVotes", javaVotes);
        model.addAttribute("pythonVotes", pythonVotes);
        model.addAttribute("cppVotes", cppVotes);

        return "results"; // Шаблон для отображения результатов голосования
    }
}
Соседние файлы в папке ПР-16