※GET / POST 방식을 구분하지 않고 코드를 작성할 때 발생하는 에러 위 list 목록 페이지에서 reg라는 글쓰기 페이지를 호출하려고 한다. reg라는 글쓰기 페이지는 아래 코드와 같이 files라는 객체를 사용한다. 그런데 페이지 호출시 files와 관련해 받은 내용이 없어 해당 객체는 null 값이 되고, 이로 인해 목록에서 글쓰기 페이지를 호출하면 500 오류가 발생한다. 1) reg 페이지 관련 Controller @RequestMapping("reg") @ResponseBody public String reg(MultipartFile[] files, HttpServletRequest request) throws IllegalStateException, IOException { for(Mu..
뉴렉쳐 스프링 프레임워크 정리/PArt3.MVC
※ 파일 전송에서의 기본 인코딩 방식 서버와 클라이언트는 기본 인코딩 방식으로 application/x-www-form-urlencoded 을 사용한다. 이는 문자열만을 주고받는 방식으로 위 이미지에서 처럼 클라이언트가 uid를 newlec, name을 dragon으로 서버로 전송할 경우 uid=newlec&name=dragon로 문자열을 전송한다. 하지만 파일과 같은 바이너리 파일들은 이런 문자열 형태로는 전송하기가 어려운데, 이를 극복하기 위해 나온 것이 multipart/form-data 인코딩 방식이다. 위 이미지처럼 하나의 문자열이 아닌 각 name마다 데이터별 별개의 구분을 주어 전송한다. 따라서 우리가 서버를 작성할 때, 파일을 받기 위해서는 multipart/form-data 인코딩 방식의..
기존 페이지에서는 header, body, aside, footer 등의 다양한 파트들이 하나의 페이지에 작성되어 있었다. 하지만 여러 페이지에서 공통으로 쓰이는 부품들이 있을 때, 특정 내용을 수정하려면 모든 페이지의 같은 내용을 수정해야한다. 또한 재사용에도 번거롭다는 단점이 있다. 이를 해결하기 위해 나온 것이 지금 배울 Tiles 라이브러리로 header, body, aside, footer 등의 여러 부품들을 하나의 레이아웃 페이지에 붙여 공통된 형태를 하나의 페이지로 가질 수 있게 할 것이다. 현재는 Front-end에서 이 기법을 제공하기에 점점 사용이 줄어가고 있으나, 여전히 사용하는 곳이 있으니 알고있자. 아래 설명할 내용들은 위 과정을 거친다. 1) 클라이언트가 서버에 /notice/l..