
Добавил:
nechitay03
Только когда поступишь в технический вуз поймешь на сколько ты гуманитарий
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:JAVA ДЛЯ ПОТОКОВ ИВБО / ПР-16 / VoteController
.java 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"; // Шаблон для отображения результатов голосования
}
}
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