Добавил:
Только когда поступишь в технический вуз поймешь на сколько ты гуманитарий Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
1
Добавлен:
15.02.2025
Размер:
2.64 Кб
Скачать
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