Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
 Проблема с сервером  [new]
fallen2019
Member

Откуда:
Сообщений: 203
После того как добавляю фото студенту должна открыться страница со списком студентов

но выходит вот такая ошибка
Type Status Report

Message Not found

Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
29 апр 19, 08:59    [21873931]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с сервером  [new]
Nixic
Member

Откуда: Perm
Сообщений: 1871
Можно не добавлять же фото студенту, в чем проблема? :)
Вы нам тут ошибки томката скидываете, что там в коде у вас не понятно.
29 апр 19, 10:38    [21874000]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с сервером  [new]
fallen2019
Member

Откуда:
Сообщений: 203
Nixic,

package adil.java.schoolmaven.controller;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import adil.java.schoolmaven.entity.Student;
import adil.java.schoolmaven.service.StudentService;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
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.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class StudentController {

    private final static File UPLOAD_FOLDER = new File(System.getProperty("user.dir") + "/avatars/");

    static {
        if (!UPLOAD_FOLDER.exists()) {
            UPLOAD_FOLDER.mkdirs();
        }
    }

    // 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) {
        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;
    }

    @PostMapping(value = "/addStudent")
    public String saveNewStudent(@RequestParam("name") String name,
            @RequestParam("surname") String surname,
            @RequestParam("avatar") MultipartFile file)
            throws IOException {

        if (file != null && !file.isEmpty()) {
            Student student = new Student();
            student.setSurname(surname);
            student.setSurname(name);
            student.setAvatar(file.getBytes());
            studentService.saveStudent(student);
        }

        return "redirect:/allStudents";
    }

    @RequestMapping(value = "/image", method = RequestMethod.GET)
    public void image(@RequestParam String url, HttpServletResponse response) throws IOException {
        InputStream in = new FileInputStream(url);
        response.setContentType(MediaType.IMAGE_JPEG_VALUE);
        IOUtils.copy(in, response.getOutputStream());
    }

    @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 adil.java.schoolmaven.config;


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
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
@EnableJpaRepositories
@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();
	}
}

	//@Override
	//public void configureViewResolvers(ViewResolverRegistry registry) {
	//	registry.jsp().prefix("/WEB-INF/views/").suffix(".jsp");
	//}
	// @Bean
	// public MessageSource messageSource() {
	// ResourceBundleMessageSource messageSource = new
	// ResourceBundleMessageSource();
	// messageSource.setBasename("messages");
	// return messageSource;
	// }

	

	/*@Override
	public void addViewControllers(ViewControllerRegistry registry) {
		registry.addViewController("/").setViewName("index");
	}*/


package adil.java.schoolmaven.config;

import javax.servlet.MultipartConfigElement;
import javax.servlet.ServletRegistration;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class ServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

	private final int DEFAULT_SIZE = 10 * 1024 * 1024;
	@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("", DEFAULT_SIZE, DEFAULT_SIZE, DEFAULT_SIZE));
    }
}


<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
<title>Home</title>

</head>
<body>
    <div class="add">
        <br>
    <br>
    <br>
    
    <br>
    <center>
	<h1>${headerMessage}</h1>
	
        <form:form method="POST" action="/addStudent" enctype="multipart/form-data">
             <table>

                <tr>
                    <td><label path="Name">Имя</label></td>
                    <td><input type="text" name="name"/></td>
                </tr>
                <tr>
                    <td><label path="Surname">Фамилия</label></td>
                    <td><input type="text" name="surname"/></td>
                </tr>
                <tr>
                    <td><label path="Avatar">Фотография:</label></td>
                    <td>
                        <input type="file" name="avatar"/>
                    </td>
                    
                </tr>
                <tr>
                    <td><input class="btn btn-primary" type="submit" value="Добавить"></td>
                </tr>
            </table>
        </form:form>
</center>
        </div>
</body>
</html>


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isELIgnored="false"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
  <link href="../css/style.css" rel="stylesheet" type="text/css">
  <style><%@include file="/WEB-INF/css/style.css"%></style>
<title>Все студенты</title>
</head>
<body>
    <br>
    <br>
    <br>

    <br>
    <div class="it">
    <h3>Список всех студентов</h3>
    ${message}
    <br>
    <br>
    <table class="table">
  <thead>
    <tr>
      <th scope="col">#</th>
      <th scope="col">Имя</th>
     
      <th scope="col">Фамилия</th>
      <th scope="col">Фото</th>
      
    </tr>
  </thead>
  <tbody>
      <c:forEach var="student" items="${studentList}">
                <tr>
                    <th scope="row">1</th>
                    <td>${student.name}</td>
                    <td>${student.surname}</td>
                     <td><img src="data:image/jpg;base64,${student.base64Image}" style="max-height: 200px; max-width: 200px;" /></td>
                    
                     <td><a
                        href="${pageContext.request.contextPath}/editStudent/${student.id}"><button type="button" class="btn btn-primary">Редактировать</button>
                    <td><a
                        href="${pageContext.request.contextPath}/deleteStudent/${student.id}"><button type="button" class="btn btn-primary">Удалить</button>
                            
                           
                            
                </tr>
            </c:forEach>
        </tbody>
    

    </table>
    <a href="${pageContext.request.contextPath}/addStudent"><button type="button" class="btn btn-primary">Добавить студента</button></a>
    </div>
</body>
</html>
29 апр 19, 11:05    [21874034]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с сервером  [new]
Пылинка
Member

Откуда: СПб
Сообщений: 339
Nixic,
А я то думаю - что так долго не заходит к нам Наастяяя -
https://www.sql.ru/forum/1310235/ne-pokazyvaet-fotku-v-tablice-servlet?hl=
29 апр 19, 11:20    [21874061]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с сервером  [new]
fallen2019
Member

Откуда:
Сообщений: 203
Пылинка,

Это спринг
29 апр 19, 11:24    [21874074]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с сервером  [new]
Пылинка
Member

Откуда: СПб
Сообщений: 339
fallen2019,
А это - ирония.
PS а что, Настяя не может никак до спринга добраться?
29 апр 19, 11:31    [21874085]     Ответить | Цитировать Сообщить модератору
Все форумы / Java Ответить