/
AlexStone
/
Java25sep
Обзор
Документация
Войти
/
AlexStone
/
Java25sep
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Spring/src/main/java/org/example/Hello_controller.java
269 строк
12 KB
AlexStone
H.W.
19 мар 2026, 14:24
19 мар 2026, 14:24
c7f9a3a
Код
Авторство
О чём код?
package org.example; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import org.springframework.web.servlet.view.RedirectView; import java.io.File; import java.io.FileNotFoundException; import java.util.*; import java.util.stream.Collectors; @RestController public class Hello_controller { @Autowired AlbumsRepository albumsRepository; @GetMapping("/") public String index() throws FileNotFoundException { File file = new File(".\\src\\main\\resources\\composers.csv"); //Spring/src/main/resources/composers.csv //C:\Users\pro-3\Desktop\Java25sep\Java25sep\Spring\.\java\resources\task5992\composers.csv if (!file.exists()) { String messege_1 = ("Файл не найден " + file.getAbsolutePath()); return messege_1; } else { Scanner fileReader = new Scanner(file); String page = "<!DOCTYPE html>\n" + "<html>\n" + "<head>\n" + "<link rel ='stylesheet' href='styles.css'/>"+ "<meta charset=\"utf-8\"/>\n" + "</head>\n" + "<body>\n" + "<h1>Список композиторов</h1>\n" + "<ol>\n"; fileReader.nextLine(); while (fileReader.hasNext()) { String str = fileReader.nextLine(); String[] stringArray = str.split(";"); page += "<li><a href=\"/composer?composer_id=" + stringArray[0] + "\">" + stringArray[1] + " " + stringArray[2] + "</a></li>"; } page += "</ol>\n"; page += "<li><a href='/playlist_list'>Список плейлистов</a>"; page += "<li><a href='/album_list'>Список альбомов</a>" + "<li><a href='/Task'><strong>Головоломка</strong></a>" + "<form method='get' action='/search_composer'>" + "<h1>Поиск</h1>" + "<input type='search' name='query'>" + "<input type='submit'>" + "</form>" + "</body>" + "</html>"; return page; } } @GetMapping("/Task") public String Task (){ String page ="<!DOCTYPE html>\n" + "<html>\n" + "<head>\n" + "<link rel ='stylesheet' href='styles.css'/>"+ "<meta charset=\"utf-8\"/>\n" + "</head>\n" + "<body>\n"+ "<br><a href='/'> Вернуться на главную страницу </a>\n" + "<h1>Головоломка Волк,Коза и Капуста</h1>\n"+ "<p>Однажды крестьянину понадобилось перевезти через реку волка, козу и капусту. У крестьянина есть лодка,<br>" + "в которой может поместиться, кроме самого крестьянина, только один объект — или волк, или коза, или капуста.<br>" + "Если крестьянин оставит без присмотра волка с козой, то волк съест козу; если крестьянин оставит без присмотра<br>" + "козу с капустой, коза съест капусту. В присутствии же крестьянина «никто никого не ест».<br>" + "Как крестьянину перевезти на другой берег всё своё имущество в целости и сохранности?</p>"+ //"<img src=\"Dog.jpg\" alt=\"теперь получается добавить картинку\" width=\"900\" height=\"900\"/>"+ "<p><strong>Решите головоломку</strong></p>"; page+= "<a href='/Puzzle'>НАЧАТЬ</a>\n"; page+= "</body>" + "</html>"; return page; } @PostMapping ("/LConB") public RedirectView LConB (@RequestParam("key")int key){ return new RedirectView("/Task"); } @GetMapping(value = "/album_list",params = "artist_id") public String albumList (@RequestParam("artist_id")int artistId) { List<Album> lst = albumsRepository.getAlbums(artistId); String s =""; s = lst.stream() .map(a -> a.title) .collect(Collectors.joining(", ")); return s; } @GetMapping("/album_list") public String albumList () { List<Album> lst = albumsRepository.getAllAlbum(); String page ="<!DOCTYPE html>\n" + "<html>\n" + "<head>\n" + "<link rel ='stylesheet' href='styles.css'/>"+ "<meta charset=\"utf-8\"/>\n" + "</head>\n" + "<body>\n"+ "<br><a href='/'> Вернуться на главную страницу </a>\n" + "<h1>Список альбомов</h1>\n"+ "<ol>\n"; page += lst.stream() .map(a -> "<li><a href=\"/album_data?album_id="+a.album_id+"\">"+a.title+"</a></li>") .collect(Collectors.joining("<br>")); page += "</ol>\n"+ "<br><a href='/'> Вернуться на главную страницу </a>\n" + "</body>" + "</html>"; return page; } @GetMapping("/playlist_list") public String playlist (){ String page = "<!DOCTYPE html>\n" + "<html>\n" + "<head>\n" + "<link rel ='stylesheet' href='styles.css'/>"+ "<meta charset=\"utf-8\"/>\n" + "</head>\n" + "<body>\n" + "<br><a href='/'> Вернуться на главную страницу </a>\n" + "<h1>Список плейлистов</h1>\n" + "<ol>\n"; List<Playlist> pllst = albumsRepository.getPlaylist(); String s =""; s = pllst.stream() .map(a -> "<li><a href=\"/playlist_data?playlist_id="+a.playlist_id+"\">"+a.name+"</a>" + "<form method='POST' action='/delete_playlist'>"+ "<input name='playlistId' value='"+a.playlist_id+"' type='hidden'>"+ "<input type='submit' value='Удалить'>"+ "</form>"+ "</li>") .collect(Collectors.joining("")); page +=s; page += "</ol>\n"+ "<form method='post' action='/new_playlist'>" + "<h1>Добавить новый плейлист</h1>" + "<input type='text' name='NewPlaylistName'>" + "<input type='submit'>" + "</form" + "</body>" + "<br><a href='/'> Вернуться на главную страницу </a>\n" + "</html>"; return page; } @GetMapping("/playlist_data") public String playlist_data(@RequestParam("playlist_id")int playlist_id){ String page = "<!DOCTYPE html>\n" + "<html>\n" + "<head>\n" + "<link rel ='stylesheet' href='styles.css'/>"+ "<meta charset=\"utf-8\"/>\n" + "</head>\n" + "<body>\n" + "<br><a href='/'> Вернуться на главную страницу </a>\n" + "<br><a href='/playlist_list'> Вернуться к списку плейлистов </a>\n" + "<h1>Список треков в плейлисте</h1>\n" + "<ol>\n"; List<Track> trck = albumsRepository.getTracksByPlaylistId(playlist_id); String s=""; s=trck.stream() .map(a -> "<li>"+a.name+"</li>"+ "<form method='POST' action='/delete_track_in_playlist'>"+ "<input name='TrackId' value='"+a.track_id+"' type='hidden'>"+ "<input name='PlaylistId' value='"+playlist_id+"' type='hidden'>"+ "<input type='submit' value='Удалить'>"+ "</form>" ) .collect(Collectors.joining("")); page +=s; page += "</ol>\n"+ "<br><a href='/playlist_list'> Вернуться к списку плейлистов </a>\n" + "<br><a href='/'> Вернуться на главную страницу </a>\n" + "</body>" + "</html>"; return page; } @GetMapping("/album_data") public String album_data(@RequestParam("album_id")int album_id){ String page = "<!DOCTYPE html>\n" + "<html>\n" + "<head>\n" + "<link rel ='stylesheet' href='styles.css'/>"+ "<meta charset=\"utf-8\"/>\n" + "</head>\n" + "<body>\n" + "<br><a href='/'> Вернуться на главную страницу </a>\n" + "<br><a href='/album_list'> Вернуться к списку альбомов </a>\n" + "<h1>Список треков в альбоме</h1>\n" + "<ol>\n"; List<Playlist> pllstOption = albumsRepository.getPlaylist(); String option = pllstOption.stream() .map(a -> "<option value='"+a.playlist_id+"'>"+a.name+"</option>") .collect(Collectors.joining("")); List<Track> trck = albumsRepository.getTracksByAlbumId(album_id); String s=""; s=trck.stream() .map(a -> "<li>"+a.name+"</li>"+ "<form action='/add_track_in_playlist' method='post'>"+ "<label for='playlists'>Плейлисты</label>"+ "<select name='PlaylistId'>"+ option+ //"<option value='id'>name playlist</option>"+ "</select>"+ "<input type='submit' value='Добавить'/>"+ "<input type='hidden' value='"+a.track_id+"' name='TrackId'/>"+ "<input type='hidden' value='"+album_id+"' name='AlbumId'/>"+ "</form>") .collect(Collectors.joining("")); page +=s; page += "</ol>\n"+ "<br><a href='/album_list'> Вернуться к списку альбомов </a>\n" + "<br><a href='/'> Вернуться на главную страницу </a>\n" + "</body>" + "</html>"; return page; } @PostMapping ("/new_playlist") public RedirectView new_playlist (@RequestParam("NewPlaylistName")String NewPlaylistName){ albumsRepository.getAddNewPlaylist(NewPlaylistName); return new RedirectView("/playlist_list"); } @PostMapping ("/delete_playlist") public RedirectView delete_playlist (@RequestParam("playlistId")int id_deletePlaylist){ albumsRepository.getDeletePlaylist(id_deletePlaylist); return new RedirectView("/playlist_list"); } @PostMapping ("/add_track_in_playlist") public RedirectView add_track_in_playlist ( @RequestParam("PlaylistId")int id_playlist, @RequestParam("TrackId") int id_addTrack, @RequestParam("AlbumId") int album_id, RedirectAttributes redirectAttributes ){ redirectAttributes.addAttribute("album_id", album_id); albumsRepository.addTrackInPlaylist(id_addTrack,id_playlist); return new RedirectView("/album_data"); } @PostMapping ("/delete_track_in_playlist") public RedirectView delete_track_in_playlist ( @RequestParam("PlaylistId")int id_playlist, @RequestParam("TrackId") int id_addTrack, RedirectAttributes redirectAttributes ){ redirectAttributes.addAttribute("playlist_id",id_playlist); albumsRepository.deleteTrackInPlaylist(id_addTrack,id_playlist); return new RedirectView("/playlist_data"); } }