Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fallen.java.schoolmaven.config;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.ComponentScan;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.web.multipart.MultipartResolver;
- import org.springframework.web.multipart.support.StandardServletMultipartResolver;
- import org.springframework.web.servlet.ViewResolver;
- import org.springframework.web.servlet.config.annotation.EnableWebMvc;
- import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
- import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
- import org.springframework.web.servlet.view.InternalResourceViewResolver;
- @Configuration
- @EnableWebMvc
- @ComponentScan(basePackages = "adil.java.schoolmaven")
- public class WebMvcConfig implements WebMvcConfigurer {
- @Bean
- public ViewResolver getViewResolver() {
- InternalResourceViewResolver resolver = new InternalResourceViewResolver();
- resolver.setPrefix("/WEB-INF/views/");
- resolver.setSuffix(".jsp");
- return resolver;
- }
- @Override
- public void addResourceHandlers(ResourceHandlerRegistry registry) {
- registry.addResourceHandler("/resources/**").addResourceLocations("/resources/css");
- }
- @Bean
- public MultipartResolver multipartResolver() {
- return new StandardServletMultipartResolver();
- }
- }
- package fallen.java.schoolmaven.config;
- import java.io.IOException;
- import java.io.PrintWriter;
- import javax.servlet.MultipartConfigElement;
- import javax.servlet.ServletException;
- import javax.servlet.ServletRegistration;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
- public class ServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
- @Override
- protected Class<?>[] getRootConfigClasses() {
- return new Class[] { HibernateConfig.class };
- }
- @Override
- protected Class<?>[] getServletConfigClasses() {
- return new Class[] { WebMvcConfig.class };
- }
- @Override
- protected String[] getServletMappings() {
- return new String[] { "/" };
- }
- @Override
- protected void customizeRegistration(ServletRegistration.Dynamic registration) {
- registration.setMultipartConfig(new MultipartConfigElement("", 2097152, 4193304, 2097152));
- }
- }
- package fallen.java.schoolmaven.controller;
- import java.io.IOException;
- import java.util.List;
- import javax.servlet.http.HttpServletResponse;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.validation.BindingResult;
- import org.springframework.web.bind.annotation.ModelAttribute;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.servlet.ModelAndView;
- import fallen.java.schoolmaven.entity.Student;
- import fallen.java.schoolmaven.service.StudentService;
- @Controller
- public class StudentController {
- // Constructor based Dependency Injection
- private StudentService studentService;
- public StudentController() {
- }
- @Autowired
- public StudentController(StudentService studentService) {
- this.studentService = studentService;
- }
- @RequestMapping(value = { "/", "/index" }, method = RequestMethod.GET)
- public ModelAndView hello(HttpServletResponse response) throws IOException {
- ModelAndView mv = new ModelAndView();
- mv.setViewName("index");
- return mv;
- }
- // Get All Users
- @RequestMapping(value = "/allStudents", method = {RequestMethod.GET, RequestMethod.POST})
- public ModelAndView displayAllUser() {
- System.out.println("User Page Requested : All Students");
- ModelAndView mv = new ModelAndView();
- List<Student> studentList = studentService.getAllStudents();
- mv.addObject("studentList", studentList);
- mv.setViewName("allStudents");
- return mv;
- }
- @RequestMapping(value = "/addStudent", method = RequestMethod.GET)
- public ModelAndView displayNewUserForm() {
- ModelAndView mv = new ModelAndView("addStudent");
- mv.addObject("headerMessage", "Add Student Details");
- mv.addObject("student", new Student());
- return mv;
- }
- @RequestMapping(value = "/addStudent", method = RequestMethod.POST)
- public ModelAndView saveNewStudent(@ModelAttribute Student student, BindingResult result) {
- ModelAndView mv = new ModelAndView("redirect:/allStudents");
- if (result.hasErrors()) {
- return new ModelAndView("error");
- }
- boolean isAdded = studentService.saveStudent(student);
- if (isAdded) {
- mv.addObject("message", "New student successfully added");
- } else {
- return new ModelAndView("error");
- }
- return mv;
- }
- @RequestMapping(value = "/editStudent/{id}", method = RequestMethod.GET)
- public ModelAndView displayEditUserForm(@PathVariable Long id) {
- ModelAndView mv = new ModelAndView("/editStudent");
- Student student = studentService.getStudentById(id);
- mv.addObject("headerMessage", "Редактирование студента");
- mv.addObject("student", student);
- return mv;
- }
- @RequestMapping(value = "/editStudent/{id}", method = RequestMethod.POST)
- public ModelAndView saveEditedUser(@ModelAttribute Student student, BindingResult result) {
- ModelAndView mv = new ModelAndView("redirect:/allStudents");
- if (result.hasErrors()) {
- System.out.println(result.toString());
- return new ModelAndView("error");
- }
- boolean isSaved = studentService.saveStudent(student);
- if (!isSaved) {
- return new ModelAndView("error");
- }
- return mv;
- }
- @RequestMapping(value = "/deleteStudent/{id}", method = RequestMethod.GET)
- public ModelAndView deleteUserById(@PathVariable Long id) {
- boolean isDeleted = studentService.deleteStudentById(id);
- System.out.println("Удаление студента: " + isDeleted);
- ModelAndView mv = new ModelAndView("redirect:/allStudents");
- return mv;
- }
- }
- package fallen.java.schoolmaven.entity;
- import java.io.Serializable;
- import javax.persistence.Entity;
- import javax.persistence.GeneratedValue;
- import javax.persistence.GenerationType;
- import javax.persistence.Id;
- import javax.persistence.Table;
- import org.springframework.web.multipart.MultipartFile;
- @Entity
- @Table(name = "student")
- public class Student implements Serializable {
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- private long id;
- private String name;
- private String surname;
- private MultipartFile avatar;
- public long getId() {
- return id;
- }
- public void setId(long id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getSurname() {
- return surname;
- }
- public void setSurname(String surname) {
- this.surname = surname;
- }
- public MultipartFile getAvatar() {
- return avatar;
- }
- public void setAvatar(MultipartFile avatar) {
- this.avatar = avatar;
- }
- @Override
- public String toString() {
- return "Student [id=" + id + ", name=" + name + ", surname=" + surname + ", avatar=" + avatar + "]";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement