목록Spring (72)
똑같은 삽질은 2번 하지 말자
1. vo 객체에 담아서 하기(손이 좀 더가는방법) 2. Map을 이용해서 전달하기(좀더 쉽게 할 수 있다.) 이번에 이 Map 을 이용한 방법에 대해 다뤄보고자 한다. @RequestMapping("admin_product_list.do") public String aGetProductList(Model model,@RequestParam(value="currp",required=false)String currp,@RequestParam(value="pname",required=false)String pname) { int totalPage; Mapmap = new HashMap(); if(currp == null) map.put("currp", 1); else map.put("currp", Integ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cLE75u/btqwIMxY4Wy/a1k6XUNl6SJOgIRc191qEk/img.png)
1. web.xml 에서 DispatcherServlet 선언이 제대로 되어있는지 확인 servlet mapping 으로 받아놓았는데 아무것도 처리안해놓으면 바로 404 error다. 찾을수 없으니깐 2. servlet-context.xml 에 설정 확인 3. url mapping이 잘 되어있는지 컨트롤러에서 확인 4. servlet-context.xml에 선언 확인
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/RGJVF/btqwJcXiXKr/R6j8cqhmozRHHvloOPvzTK/img.png)
WebApplicationServer: Apache Tomcat 9.0v DataBase: Oracle 11.2.0.3 ツール:eclipse 2019-03 SpringMVC+Mybatis+Maven+JSP+html5+css+Javascript+Java 8(jdk1.8.0_171) Oralce은 자동으로 다운이 안되서 위와 같이 저장소를 추가해줬다. 나머지 추가해줘야할 Maven 이외 ecilpser 마켓에서 받았던 것들
스프링에서 말하는 "애플리케이션 컨텍스트"는 스프링이 관리하는 빈들이 담겨 있는 컨테이너라고 생각하시면 됩니다. 스프링 안에는 여러 종류의 애플리케이션 컨텍스트 구현체가 있는데, ApplicationContext라는 인터페이스를 구현한 객체들이 다 이 애플리케이션 컨텍스트입니다. 웹 애플리케이션 컨텍스트는 ApplicationContext를 확장한 WebApplicationContext 인터페이스의 구현체를 말합니다. WebApplicationContext는 ApplicationContext에 getServletContext() 메서드가 추가된 인터페이스입니다. 이 메서드를 호출하면 서블릿 컨텍스트를 반환됩니다. 결국 웹 애플리케이션 컨텍스트는 스프링 애플리케이션 컨텍스트의 변종이면서 서블릿 컨텍스트와 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/baKfgp/btqwDKfelzp/twdz9sBUiYkDkf6ePDpiF0/img.png)
일반적으로 프레임워크 기반의 웹 프로젝트를 보면 두개의 레이어 (Presentation Layer / Business Layer)로 나누어 시스템을 개발하는데, 이를 2-Layered 아키텍처 스타일 이라고 한다. 그리고 계층별로 해당하는 설정파일 applicationContext.xml(비즈니스 계층)/presentation-layer.xml(프레젠테이션 계층) 이 있다고 한다면, DispatcherSevlet이 생성되어 프레젠테이션 계층 설정 파일을 읽고 스프링 컨테이너 구동되며, Controller 객체들이 메모리에 생성된다. but, Controller 객체들이 생성되기전에 DAO,VO 같은 비즈니스 컴포넌트들을 메모리에 생성해야 하는데, 이때 사용하는 클래스가 ContextLoaderListen..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cVxvaM/btqwgBpWkbe/G4h7KXSXu8Lfs07lDT5yRk/img.png)
1. @RequestParam Commad 객체를 이용하면 클라이언트에서 넘겨준 요청 파라미터 정보를 받아낼 수 있다. but, 이를 위해서는 반드시 요청 파라미터와 매핑될 변수와 Setter 메소드가 Commad 클래스에 있어야한다. 그런데 Commnad 객체에는 없는 파라미터를 @Controller에서 사용하고 싶을때! 쓰는 @RequestParam public String getBoardList(@RequestParam(value="" defaultValue="" required="")String 변수이름) value -> 화면으로부터 전달될 파라미터 이름 defaultValue -> 화면으로부터 전달될 파라미터 정보가 없을 때, 설정할 기본값 required -> 파라미터 생략 여부 @Reques..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/UeorN/btqwf3fRsOy/K92uUTKvFckqbz1mFbbddk/img.png)
이제부터 한글로 데이터를 보냈을때 깨지는 현상을 고치기위해 할것 보통 jsp 파일의 설정부분인데 contentType는 서버에서 생성될 HTML의 캐릭터셋 즉, 네트워크로 보내기전 그 후 아스키코드로 변환되어서 건너온다. 이 때 따로 filter 설정을 안해주면 아스키코드값 그대로 데이터를 비즈니스 영역에 보내버리기 때문에 filter를 만들어서 utf-8로 변환되도록 설정해준다. (pageEncoding은 JSP 내의 Java 코드에 대한 캐릭터셋에 대한 정보) 요로코롬 해주고 주의할 것은 CharacterEncodingFilter- > request body encoding설정. POST 요청 parameter에 영향을 준다. 즉 GET 요청 에는 영향을 주지 않는다. GET 커버는 톰캣의 serve..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lPR8E/btqwhyeTEum/zXdQzI75xkzYG4jXqAGmMk/img.png)
"프로젝트 선택 > 우클릭 > Maven > Update Project Configuration..." 선택 (pom.xml 파일 수정시 이클립스 프로젝스 설정에 반영되도록 설정하기 위해 또는 갑자기 pom.xml에 오류가 생겼을때 업데이트 한번 해주라고 들어서) 무작정 해버렸지만 갑자기 이렇게 WEB-INF/lib 경로를 찾을수 없다고 뜬다. 업데이트시 자기 멋대로 경로가 삭제 되어버려서 그렇다. 그럼 나는 경로를 다시 추가해주면 되는데, 그 방법은 간단하다. 1.해당 프로젝트 우클릭 -> Properties -> Deployment Assembly -> Add ※Deployment Assembly 가 없을시, 해당 프로젝트 우클릭 -> Properties -> Project Facets 탭 클릭 Dy..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/brDLZF/btqwaiwFB79/XkEU37U8jgZSBwMNSEkLz1/img.png)
이런식으로 하나의 mapper.xml 파일안에 여러개의 namespace 를 선언하는게 될꺼라고 착각하기 쉽지만, 안된다. mapper 파일을 하나 만들어서 거기다가 DAO 별로 따로따로 ???_mapper.xml 만들어서 예쁘게 모아보아요~