본문 바로가기

전체 글

(533)
input file accept 와 사진/동영상/안드로이드 input 태그에 type 이 file 인 경우, 찾아보기 대상을 조정할 수 있는데.. accept 속성이 이런 일을 함. 그런데, 짧게 기술한다고 accept="image/*" 라고 기술하면.. 애플의 경우 '사진 보관함', '사진 또는 동영상 찍기', '파일 선택', 안드로이드의 경우 '카메라', '카메라/캠코더', '파일' 등을 선택할 수 있게 된다. 여기서, '동영상' 이나 '캠코더' 기능을 없애려면.. 'image/*' 를 없애고, 필요한 이미지의 확장자를 기술하면 된다. accept=".jpg, .png" 애플의 경우 '사진 보관함', '사진 찍기', '파일 선택', 안드로이드의 경우 '카메라', '찾아보기' 등을 선택할 수 있게 된다. 물론, os 버전에 따라 상이할 수는 있다.. Andro..
orai18n.jar 다운로드 및 적용 https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html jdk8 용 인 ojdbc8-full.tar.gz 를 다운받아 .gz 압축을 풀면, orai18n.jar 파일이 나온다.. 이클립스 해당 프로젝트 명을 마우스 오른쪽 버튼으로 클릭하고, properties 단축메뉴 클릭, Java Build Path 의 Libraries 탭에서 Add External JARs... 버튼 클릭. orai18n.jar 파일을 찾아서 선택하고, Apply and Close 한 다음, 웹서버 재시작. build.gradle 수정 및 적용시 등등의 이유로 간혹, java build path 에서 orai18n.jar 세팅한 내용이 사라지므로, 다시 Ad..
스프링, 세션과 쿠키 #1 Controller.. @Controller @RequestMapping("/auth") public class LoginContoller{ @GetMapping("/login") public String loginForm(LoginInput loginInput){ return "loginForm"; } @PostMapping("/login") public String login(LoginInput loginInput, HttpSession session){ ... UserInfo ui = new UserInfo("Gil-dong"); session.setAttribute("userInfo",ui); ... return "..."; } @GetMapping("/logout") public Strin..
스프링 뷰, 타임리프 form 과 결과 View 에 사용된 타임리프 항목이, View 를 호출한.. Controller 의 Model 에 담기지 않았거나 Controller 의 파라미터에 JavaBeans 객체 형태로 전달되지 않았다면, Whitelabel Error...Could not parse as expression... ...Exception evaluating SpringEL expression... 다만, 값이 null 이라도 에러가 발생하지 않음. Controller 의 자바빈즈 파라미터에 ObjectA objA 가 사용되었다면, Controller 안에선 'objA' 로 사용되고.. View 에선 'objA' 가 아니라 'objectA ' 형태로, 클래스명의 첫번째 문자를 소문자로 바꾸어 사용. Controller 의 자바빈즈..
스프링 build.gradle 수정후 반드시 실행 build.gradle 파일 수정 후 반영하기 위해서는, 'Refresh Gradle Project' 실행해야 함. build.gradle 파일을 마우스 오른쪽 버튼으로 클릭, 팝업 메뉴에서 Gradle, Refresh Gradle Project 등을 차례로 클릭. plugins { id 'org.springframework.boot' version '2.6.12' id 'io.spring.dependency-management' version '1.0.14.RELEASE' id 'java' } group = '패키지명' version = '0.0.1-SNAPSHOT' sourceCompatibility = '1.8' configurations { compileOnly { extendsFrom annot..
스프링 Controller Step 2, request 파라미터 수용(매핑시) (웹브라우저 주소창에 입력 및 실행되면) 웹서버 URL 호출시의 파라미터를 전달받는 것. 클릭 @GetMapping("/aaa/{var}") public String methodA(String var){ ... } - 하나의 변수로 인정 - methodA 에서 int var 하였으면, 수치로 인식. 수치가 입력되지 않으면 에러 클릭 @GetMapping("/aaa/{var1}/{var2}") public String methodA( @PathVariable String var1, @PathVariable String var2 ){ ... } - 변수 여럿이면 파라미터도 여럿 - @GetMapping 에 기술된 var1 과 var2 의 순서와 다르게 methodA 에 String var2, String v..
스프링 Controller Step 3, response 할당(View, RESTful) (웹브라우저 주소창에 입력 및 실행되면) 결과를 웹브라우저에게 반환하는 것. Controller .java 경로는 /src/main/java/도메인경로/controller/ 로 가정 View .html 경로는 /src/main/resources/templates/ 로 가정 크게 3가지인데, A. 뷰 파일 호출 (1번과 2번) B. 화면 전환 (2번에서 redirect) C. JSON 객체 반환 (나머지 3~11번) 1. void 호출된 URL 과 동일한 뷰 파일 호출. 2. String 호출된 URL 을 처리한 Controller 에서 리턴한 뷰 파일 호출 3. JavaBeans Class 파일 대신에 Controller 에서 생성한 JSON 객체 반환 RESTful 에서 사용 ($.ajax 등등) 해당..
스프링 Controller Step 1, request 할당 (Annotation Mapping) (웹브라우저 주소창에 입력 및 실행되면) 이를 처리할 서버측 .java 와 method 를 할당하는 것. 크게 3가지인데, A. RequestMapping 이 기본 B. RequestMapping 간소화 C. Annotation 파라미터 1. 요청 경로 매핑, RequestMapping 메소드가 void 리턴이면 @RequestMapping path 값과 동일한 view 파일 호출, 메소드가 String 리턴이면 String 값과 동일한 view 파일 호출. 매핑 관련해서는 RequestMapping 이 기본이고, 다른 매핑은 이를 간소화. 2. 경로 패턴 매핑 RequestMapping 시 파라미터 1개? URL 경로 상의 변하는 값을 경로 변수로 취급. 3. Http 메서드 매핑 @GetMapping..