728x90

분류 전체보기 117

Spring Ajax를 사용한 정렬

ajax를 사용하여 컨트롤러(sortPrice.do)로 필요한 정보를 넘겨주고 result로 결과값을 받아와 상품을 새로 만들어 주었다. sortPrice.do 컨트롤러 스프링에서 주소가 아닌 값을 넘겨줄려면 @ResponseBody 어노테이션이 필요하다. @ResponseBody @RequestMapping(value="/sortPrice.do") public List sortPrice(ProductVO pVO, Model model) { List products=productService.selectAllProduct(pVO); return products; } 기존 화면 정렬 이후의 화면 낮은 금액순 높은 금액순

Spring 2022.10.07

Mybatis 프레임워크 스프링 연동

Mybatis에서 Spring 연동에 필요한 API를 제공하기 때문에 이를 사용하여 Spring 연동을 진행한다. 진행순서 1) pom.xml에 dependency 추가 org.mybatis mybatis-spring 1.2.4 아래의 설정과 충돌을 일으키는 경우가 있어 충돌 시 아래의 설정은 사용하지 않는다. org.apache.ibatis ibatis-core 3.0 2) db.properties 파일 삭제 datasource가 스프링 설정파일에 존재하기 때문에 db.properties 파일을 삭제한다. (스프링 설정파일에서 "dataSource"로 등록되어있음) 3) SqlSessionFactory 클래스(기존에는 SqlSessionBean 클래스 파일)를 스프링 설정 파일에 등록해야 한다. Myb..

Spring 2022.10.05

Mybatis 프레임워크

Mybatis는 객체 지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와주는 개발 프레임 워크로서 JDBC를 통해 데이터베이스에 액세스 하는 작업을 캡슐화하고 일반 SQL 쿼리, 저장 프로 시저 및 고급 매핑을 지원하며 모든 JDBC 코드 및 매개 변수의 중복작업을 제거한다. 한다. Mybatis에서는 프로그램에 있는 SQL 쿼리들을 한 구성 파일에 구성하여 프로그램 코드와 SQL을 분리할 수 있는 장점을 가지고 있다. 즉, Mybatis를 사용하는 이유로는 1) DB연동을 담당하는 JAVA 코드를 1~2줄로 줄일 수 있어 가독성이 증대된다. 2) SQL문을 JAVA 코드에서 분리하여 XML 파일로 별로 관리하여 응집도를 높일 수 있다. 따라서 기존의 일반 자바 JDBC와 ..

Spring 2022.10.04

Spring 다국어 처리

다국어 처리(국제화)는 하나의 페이지를 여러가지의 언어로 서비스하는 것으로 과거에는 언어별로 페이지를 다르게 제작하였지만 현재는 이와 같이 사용하지 않는다. -> 프레임워크의 다국어처리기능을 사용(별도 페이지 제작 안 함) 1) 메세지 파일 제작 파일의 확장자는 .properties로 생성 언어 선택을 Locale 정보로 수행하며 파일명에 언어에 해당하는 Locale 코드를 추가한다. ex) xxx_en.properties, xxx_ko.properties, ... 파일 내부에는 메세지 키+메세지 값을 작성한다. (영어를 제외한 나머지 언어는 유니코드로 작성) -> 유니코드 작성은 자동 지원해준다. 파일 생성 위치 소스/메인/리소스 -> message 패키지 생성 -> messageSource_en.pr..

Spring 2022.09.29

Spring 예외 페이지 설정

예외 페이지는 사용자에게서 예외가 발생하였을 때 예외 페이지로 이동하여 안내함으로 써 사용자 편의성을 증대시키기 위해 설정한다. 언제 발생하는가? ex) 불가능한 요청, 존재하지 않는 페이지 등등 에러 처리 - 에러 자체가 발생되지 않게 선처리(유효성 검사) 에러가 발생하더라도, 넘어갈 수 있게(try-catch) 처리 vs 에러 페이지 설정 - 에러는 발생할수있지만 에러 발생 시, 왜 발생했는지 -1 어디로 가야 하는지 안내 -2 (가야 하는 페이지) 에러 페이지 설정은 @과 xml로 할 수 있다. 1) @ 설정 DispatcherServlet-servlet.xml에 @을 앞으로 사용할 거라고 알려줘야 한다. (Namespace -> mvc) 이후 DispatcherServlet-servlet.xml ..

Spring 2022.09.28

Spring 이미지 업로드

[파일 업로드] 파일 업로드를 위해서는 다음과 같은 설정들이 필요하다. 1. VIEW 파일을 업로드하는 form 태그에 enctype="multipart/form-data"를 추가한다. 2. Command 객체(bVO) 정보를 받는 bVO 객체에 변수를 추가해 준다. private MultipartFile uploadFile; // 멀티파일 객체 3. Fileupload 라이브러리(.jar) 추가 -> pom.xml commons-fileupload commons-fileupload 1.3.1 4. MultipartResolver 설정 -> DispatcherServlet-servlet.xml 이미지 업로드 수행 순서 1) VIEW --데이터 전송-->> Command 객체에 세팅(bvo.setMF) (..

Spring 2022.09.27

2-Layered 아키텍처

기존의 Spring MVC를 기반으로 한 프로젝트의 순서는 1) xxx.do 요청 2) 서블릿 컨테이너 구동 -> DispatcherServlet을 생성 -> DS-servlet.xml을 로드해서 생성 -> 이러한 현재 과정이 일어나는 현재의 계층(layer)을 "프레젠테이션 레이어"라고 한다. 3) 스프링 컨테이너가 구동 -> Controller 객체들 생성 -> C 객체들이 Command 객체로 DAO 객체를 사용 -> DAO2를 사용하고 싶으나 @Autowired가 되어 있지 않아 사용이 불가능 현재 Controller의 모든 메서드는 DAO 객체를 직접 이용하고 있지만 Spring에서는 DAO 객체를 직접 이용하지 않고, 반드시 "비즈니스 컴포넌트"를 이용해서 DAO 객체를 다룰 수 있게 구성해야..

Spring 2022.09.26

Spring 다양한 @(어노테이션) 설정

@RequestParam (메서드에 인자로 사용) Command 객체에는 없는 파라미터를 Controller 클래스에게 전달해주기 위해 사용 ex) @RequestParam(value="searchCondition",defaultValue="TITLE",required=false)String searchCondition value="무엇을 받을지" defaultValue="값이 없을때 기본 값" required="필수 여부" String SearchCondition에 View에서 보내준 searchCondition이라는 name의 value 값이 들어간다. @ModelAttribute("설정한 이름") (메서드에 작성하거나 인자 앞에 붙여 사용) View 작업자 입장에서 화면을 구성할 때 칼럼을 알아야 ..

Spring 2022.09.23

Spring MVC2 .xml 설정 어노테이션으로 변경

@ 설정을 위해서는 스프링 컨테이너가 내가 설정한 패키지 범위를 scan 할 수 있도록 context 네임스페이스를 추가해야 한다. // 스캔할 범위를 설정해 주어야 한다. @Component() 진행 시 DAO류는 @Repository 서비스류는 @Service 서비스류와 같이 진행하였다. 컨트롤러류도 마찬가지로 @Controller로 객체화를 진행한다. @Controller는 DS가 인식하는 C 객체로 설정해주며 더 이상 implements가 필요 없어 오버 라이딩 강제가 필요 없다. 완전한 POJO가 되었기 때문에 메서드 시그니쳐의 변경 또한 가능하다. 기존 오버 라이딩 시 public ModelAndView handleRequest(HttpServletRequest request, HttpServ..

Spring 2022.09.22

Spring MVC2 DispatcherServlet.xml 설정

사용자가 *.do 요청을 하면 web.xml을 읽어 들이는 서블릿 컨테이너에서 서블릿 객체를 생성한다. 이때 web.xml에 등록되어 있던 기존에 내가 만들었던 DS를 스프링 프레임워크에 내장되어 있는 DS로 교체한다. 만약, ClassNotFound 에러 발생시 properties -> Deployment Assembly에 메이븐 디펜던시를 추가하여 해결한다. // 스프링에 내장되어있는 DispatcherServlet DispatcherServlet(등록할 서블릿의 이름) org.springframework.web.servlet.DispatcherServlet // *.do 요청이 오면 DispatcherServlet로 맵핑 DispatcherServlet(등록한 서블릿의 이름) *.do 스프링 프레임..

Spring 2022.09.21
728x90