Spring: AJAX로 백엔드 컨트롤러에 이미지 전송

컨트롤러 (일부) @RequestMapping(value = “/url”, method = RequestMethod.POST) public String insert(MultipartHttpServletRequest request, HttpSession session, ModelMap model) throws Exception { String rootPath = session.getServletContext().getRealPath(“/”); System.out.println(“imageFile ” + request + ” ” + request.getParameter(“imgFile”) + ” ” + rootPath + ” “); Iterator<String> itr = request.getFileNames(); if(itr.hasNext()){ List<MultipartFile> mpf = request.getFiles(itr.next().toString()); for(int 더보기…

Node.js: Webpack + Babel과 Babel/polyfill을 이용하여 ES6으로 작성된 코드를 ES5 이하에서도 호환되게 하기

Node.js: 설치, 코드 실행 (Windows 기준) Node.js: Webpack 설치하기 (Webpack 4 버전 기준) Node.js: Webpack 4 추가 설정 (CSS, HTML, dev-server)   require(‘./static/css/main.css’) // CSS 로딩 방법 console.log(“WELCOME”) // 기본 Babel만으로 동작 const funcEx = () => { alert(‘arrow’) } funcEx() // Promise 등은 Pollyfill을 필요로 한다. function msgAfterTimeout (msg, 더보기…

JQuery: $.parseXML 과 IE의 WrongDocumentError 에러

$.parseXML(string)은 스트링 형식으로 된 xml을 자바스크립트 객체로 파싱하는 역할을 한다. 이게 중요한게 아니고 크롬을 비롯한 기타 브라우저에서는 저걸 그냥 사용해도 이상이 없는데 인터넷 익스플로러에서만 발생하는 오류가 있다. <script> function xmlDocGenerator(tagName){ var xml = document.implementation.createDocument(“”, “”, null); var topNode = xml.createElement(tagName) xml.appendChild(topNode) return xml.cloneNode(true); } var xmlHeader = xmlDocGenerator(“elm:customTag”) xmlHeader = 더보기…

JQuery: 제이쿼리 사용법 이것저것 (select opiton, 체크박스, DOM, 위아래이동, 이벤트 부여, 배열 순회, 자식-부모 요소, AJAX, XML 파싱, 이벤트 한번만 실행 one)

select ~ option의 선택된 값 읽기 $(“select option:selected”).val() // 또는 .text() 체크박스 체크되어있는지 알아내기 $(“#specific-checkbox).is(“:checked”) JQuery 전용 포맷 DOM을 일반용으로 변경 $(“#element-id”).get(0) 여러개의 같은 요소로 이루어진 리스트에서 한 칸 아래/위(다음/이전)으로 이동 $(“.each-div.active”).next().after($(“.each-div.active”)) $(“.each-div.active”).prev().before($(“.each-div.active”)) 해당 요소에 부여된 이벤트 트리거 $(“#element-id”).on(“click”, function(){…}) // 이벤트 부여 $(“#element-id”).trigger(“click”) // 해당 요소를 클릭했을 때의 이벤트 더보기…

Vue.js: 컴포넌트 선언

이전 글: Vue.js: 기초 사용 방법 + 예제: 이름으로 보는 운세   요구사항: Home, Portfolio, Guestbook 3개의 메뉴로 된 홈페이지를 만들되 각 메뉴는 Vue.js의 컴포넌트를 사용하여 작성하시오. <!DOCTYPE html> <html lang=”ko”> <head> <meta charset=”UTF-8″> <title>Homepage</title> <link rel=”stylesheet” href=”[부트스트랩-cdn-주소]”> </head> <body class=container> <nav id=”home-nav” class=”navbar navbar-expand-lg navbar-dark bg-dark”> <a class=”navbar-brand” href=”#”>{{ title 더보기…

자바스크립트 예제: 일본어 가사를 Quizlet으로 공부하자!

[예제 사이트 가기] 이 예제는 예전에 만들었던 건데요 위와 같은 포맷의 일본 노래 가사를 이용해 학습 세트를 만드는 예제입니다. Quizlet(www.quizlet.com)은 플래시카드 학습 사이트인데, 카드 만들기 기능을 이용해 일본어 가사를 복붙하면 퀴즐렛에서 입력할 수 있는 포맷으로 바뀌며 이것을 이용해 퀴즐렛 문답세트를 만들 수 있습니다. 한국어로 해석된 일본 노래 가사들은 대개 [일본어 더보기…

자바: 직렬화 (Serialization) + 예제 – 게시판 비슷한 것

직렬화란 자바의 객체를 네트워크 상에서 주고받게 하기 위하여 메모리에 저장된 객체를 바이너리 형식으로 변환하는 것을 뜻합니다. 역직렬화는 당연히 반대의 과정입니다. 이렇게 변환된 직렬화된 객체는 하드디스크에 저장하거나 네트워크 상으로 전송하여 다른 컴퓨터에서 사용하도록 할 수 있습니다. 직렬화를 하려면 대상 클래스가 Serializable 인터페이스를 구현해야 합니다. 참고로 ArrayList를 비롯한 몇몇 자바 클래스에서는 이미 더보기…

Java, Spring: 예제 – JspMvcHelper (Reflection을 사용해 ModelAndView 내의 객체들의 정보를 표시해 주는 프로그램)

이 프로그램은 자바의 Reflection 개념들을 연습하기 위해 만든 예제로 리플렉션을 이용하여 Spring 프로젝트에서 MVC 패턴을 사용할 때 컨트롤러 등에 있는 ModelAndView (+ Model) 객체의 정보를 프론트엔드 측에서 볼 수 있도록 가공해서 보여주는 프로그램입니다. 자바스크립트의 console.log() 등을 사용해 내용을 볼 수 있습니다. 사용 제약 MVC 패턴을 사용하는 스프링 프로젝트가 필요합니다. 모델 객체가 더보기…

JSP, Spring: EL(Expression Language), JSTL(Java Standard Tag Library) 기초 사용법

EL(Expression Language)과 JSTL(Java Standard Tag Library)은 자바 서블릿 또는 스프링을 이용한 MVC 패턴에서 컨트롤러가 뷰(View) 페이지로 전송한 정보를 표시하는 방법입니다.   1. EL 별도의 임포트 과정이 필요없고, JSP에서 바로 사용 가능합니다. 기본 사용 방법은 ${ 표현식 } 의 꼴로 사용하며, 표현식 내부의 계산 결과를 HTML에서 사용하는 텍스트 형식으로 반환합니다. 즉, 더보기…

자바스크립트: 콜백, Promise, async – await 기초

자바스크립트에서 작업을 의도한 순서대로 처리한 방법에는 콜백, Promise, async – await 3가지가 있습니다. async – await가 최신 기술이며 3가지 방법들은 이전 개념을 이해해야 진행할 수 있습니다. 원래 프로그래밍 언어가 순서대로 처리하는 건데 왜 별도의 개념을 익혀야 하느냐 묻는다면, 자바스크립트에서는 비동기 처리라는 복잡한 문제가 있기 때문입니다. 비동기 처리란 특정 코드의 연산이 끝날 때까지 더보기…