Advertisement
Guest User

Untitled

a guest
Jun 26th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.73 KB | None | 0 0
  1. package fallen.java.schoolmaven.config;
  2.  
  3.  
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.ComponentScan;
  6. import org.springframework.context.annotation.Configuration;
  7. import org.springframework.web.multipart.MultipartResolver;
  8. import org.springframework.web.multipart.support.StandardServletMultipartResolver;
  9.  
  10. import org.springframework.web.servlet.ViewResolver;
  11. import org.springframework.web.servlet.config.annotation.EnableWebMvc;
  12. import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
  13.  
  14.  
  15. import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
  16. import org.springframework.web.servlet.view.InternalResourceViewResolver;
  17.  
  18. @Configuration
  19. @EnableWebMvc
  20. @ComponentScan(basePackages = "adil.java.schoolmaven")
  21. public class WebMvcConfig implements WebMvcConfigurer {
  22.  
  23. @Bean
  24.  
  25. public ViewResolver getViewResolver() {
  26. InternalResourceViewResolver resolver = new InternalResourceViewResolver();
  27. resolver.setPrefix("/WEB-INF/views/");
  28. resolver.setSuffix(".jsp");
  29. return resolver;
  30. }
  31.  
  32.  
  33. @Override
  34. public void addResourceHandlers(ResourceHandlerRegistry registry) {
  35. registry.addResourceHandler("/resources/**").addResourceLocations("/resources/css");
  36. }
  37.  
  38. @Bean
  39. public MultipartResolver multipartResolver() {
  40. return new StandardServletMultipartResolver();
  41. }
  42. }
  43.  
  44. package fallen.java.schoolmaven.config;
  45.  
  46. import java.io.IOException;
  47. import java.io.PrintWriter;
  48. import javax.servlet.MultipartConfigElement;
  49. import javax.servlet.ServletException;
  50. import javax.servlet.ServletRegistration;
  51. import javax.servlet.annotation.WebServlet;
  52. import javax.servlet.http.HttpServlet;
  53. import javax.servlet.http.HttpServletRequest;
  54. import javax.servlet.http.HttpServletResponse;
  55. import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
  56.  
  57. public class ServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
  58.  
  59. @Override
  60. protected Class<?>[] getRootConfigClasses() {
  61. return new Class[] { HibernateConfig.class };
  62. }
  63.  
  64. @Override
  65. protected Class<?>[] getServletConfigClasses() {
  66. return new Class[] { WebMvcConfig.class };
  67. }
  68.  
  69. @Override
  70. protected String[] getServletMappings() {
  71. return new String[] { "/" };
  72. }
  73.  
  74. @Override
  75. protected void customizeRegistration(ServletRegistration.Dynamic registration) {
  76. registration.setMultipartConfig(new MultipartConfigElement("", 2097152, 4193304, 2097152));
  77. }
  78. }
  79.  
  80. package fallen.java.schoolmaven.controller;
  81.  
  82. import java.io.IOException;
  83. import java.util.List;
  84.  
  85. import javax.servlet.http.HttpServletResponse;
  86.  
  87. import org.springframework.beans.factory.annotation.Autowired;
  88. import org.springframework.stereotype.Controller;
  89. import org.springframework.validation.BindingResult;
  90. import org.springframework.web.bind.annotation.ModelAttribute;
  91. import org.springframework.web.bind.annotation.PathVariable;
  92. import org.springframework.web.bind.annotation.RequestMapping;
  93. import org.springframework.web.bind.annotation.RequestMethod;
  94. import org.springframework.web.servlet.ModelAndView;
  95.  
  96. import fallen.java.schoolmaven.entity.Student;
  97. import fallen.java.schoolmaven.service.StudentService;
  98.  
  99. @Controller
  100. public class StudentController {
  101. // Constructor based Dependency Injection
  102. private StudentService studentService;
  103.  
  104. public StudentController() {
  105.  
  106. }
  107.  
  108. @Autowired
  109. public StudentController(StudentService studentService) {
  110. this.studentService = studentService;
  111. }
  112.  
  113.  
  114. @RequestMapping(value = { "/", "/index" }, method = RequestMethod.GET)
  115. public ModelAndView hello(HttpServletResponse response) throws IOException {
  116. ModelAndView mv = new ModelAndView();
  117. mv.setViewName("index");
  118. return mv;
  119. }
  120.  
  121. // Get All Users
  122. @RequestMapping(value = "/allStudents", method = {RequestMethod.GET, RequestMethod.POST})
  123. public ModelAndView displayAllUser() {
  124. System.out.println("User Page Requested : All Students");
  125. ModelAndView mv = new ModelAndView();
  126. List<Student> studentList = studentService.getAllStudents();
  127. mv.addObject("studentList", studentList);
  128. mv.setViewName("allStudents");
  129. return mv;
  130. }
  131.  
  132. @RequestMapping(value = "/addStudent", method = RequestMethod.GET)
  133. public ModelAndView displayNewUserForm() {
  134. ModelAndView mv = new ModelAndView("addStudent");
  135. mv.addObject("headerMessage", "Add Student Details");
  136. mv.addObject("student", new Student());
  137. return mv;
  138. }
  139.  
  140. @RequestMapping(value = "/addStudent", method = RequestMethod.POST)
  141. public ModelAndView saveNewStudent(@ModelAttribute Student student, BindingResult result) {
  142. ModelAndView mv = new ModelAndView("redirect:/allStudents");
  143.  
  144.  
  145. if (result.hasErrors()) {
  146. return new ModelAndView("error");
  147. }
  148. boolean isAdded = studentService.saveStudent(student);
  149. if (isAdded) {
  150. mv.addObject("message", "New student successfully added");
  151. } else {
  152. return new ModelAndView("error");
  153. }
  154.  
  155. return mv;
  156. }
  157.  
  158. @RequestMapping(value = "/editStudent/{id}", method = RequestMethod.GET)
  159. public ModelAndView displayEditUserForm(@PathVariable Long id) {
  160. ModelAndView mv = new ModelAndView("/editStudent");
  161. Student student = studentService.getStudentById(id);
  162. mv.addObject("headerMessage", "Редактирование студента");
  163. mv.addObject("student", student);
  164. return mv;
  165. }
  166.  
  167. @RequestMapping(value = "/editStudent/{id}", method = RequestMethod.POST)
  168. public ModelAndView saveEditedUser(@ModelAttribute Student student, BindingResult result) {
  169. ModelAndView mv = new ModelAndView("redirect:/allStudents");
  170.  
  171. if (result.hasErrors()) {
  172. System.out.println(result.toString());
  173. return new ModelAndView("error");
  174. }
  175. boolean isSaved = studentService.saveStudent(student);
  176. if (!isSaved) {
  177.  
  178. return new ModelAndView("error");
  179. }
  180.  
  181. return mv;
  182. }
  183.  
  184. @RequestMapping(value = "/deleteStudent/{id}", method = RequestMethod.GET)
  185. public ModelAndView deleteUserById(@PathVariable Long id) {
  186. boolean isDeleted = studentService.deleteStudentById(id);
  187. System.out.println("Удаление студента: " + isDeleted);
  188. ModelAndView mv = new ModelAndView("redirect:/allStudents");
  189. return mv;
  190.  
  191. }
  192.  
  193. }
  194.  
  195. package fallen.java.schoolmaven.entity;
  196.  
  197. import java.io.Serializable;
  198. import javax.persistence.Entity;
  199. import javax.persistence.GeneratedValue;
  200. import javax.persistence.GenerationType;
  201. import javax.persistence.Id;
  202. import javax.persistence.Table;
  203. import org.springframework.web.multipart.MultipartFile;
  204.  
  205. @Entity
  206. @Table(name = "student")
  207. public class Student implements Serializable {
  208.  
  209. @Id
  210. @GeneratedValue(strategy = GenerationType.AUTO)
  211. private long id;
  212. private String name;
  213. private String surname;
  214. private MultipartFile avatar;
  215.  
  216. public long getId() {
  217. return id;
  218. }
  219.  
  220. public void setId(long id) {
  221. this.id = id;
  222. }
  223.  
  224. public String getName() {
  225. return name;
  226. }
  227.  
  228. public void setName(String name) {
  229. this.name = name;
  230. }
  231.  
  232. public String getSurname() {
  233. return surname;
  234. }
  235.  
  236. public void setSurname(String surname) {
  237. this.surname = surname;
  238. }
  239.  
  240. public MultipartFile getAvatar() {
  241. return avatar;
  242. }
  243. public void setAvatar(MultipartFile avatar) {
  244. this.avatar = avatar;
  245. }
  246.  
  247. @Override
  248. public String toString() {
  249. return "Student [id=" + id + ", name=" + name + ", surname=" + surname + ", avatar=" + avatar + "]";
  250. }
  251.  
  252. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement