본문 바로가기
반응형

Spring91

예외처리 프로그램 실행 중 오류가 발생되면 프로그램이 중단되는데, 이 오류표시가 사용자 입장에서 보기 좋지 않다. 따라서, 오류 발생시 보여줄 jsp를 구성하고 이 jsp로 응답결과를 생성하여 브라우저로 전달한다. @ExceptionHandler는 Controller마다 만들면 불편하기 때문에 오류에 관련된 핸들러가 Controller에 없다면 Global Exception Handler를 만든다. 예외처리하는 방법은 다음과 같다. 1. Exception을 implements하고 @ControllerAdvice를 가진 GlobalExceptionHandler.java 생성하고 @ExceptionHandler로 예외처리 내용 정하기 2. 에러처리를 위한 jsp파일 생성 후 return 3. ServletAppCon.. 2020. 5. 27.
Interceptor spring Framework의 AOP를 적용한 Spring MVC의 요소이다. Interceptor는 요청주소에 대해 관심을 가지고 있다. 요청주소를 확인하여 Controller의 메서드를 호출 하기 전이나 후에 다른 메서드를 호출 할 수 있도록 가로 채 간다. 메서드의 코드가 중복되는 부분이 있다면 Interceptor를 통해 처리할 수 있다. 로그인 여부 확인, 등급별 서비스 권한 확인 등.. implements HandlerInterceptor extends HandlerInterceptorAdaptor 2가지 모두 가능하다. Interceptor는 보통 3가지 메소드를 구현한다. preHandle() - 메서드 호출 전 (return false이면 이후는 실행하지 않고 종료된다.) postHan.. 2020. 5. 27.
Validator 커스터마이징 JS-303, JS-380 2가지의 경우에 유효성 검사하는 코드를 알아보았다. Validator를 본인이 직접 만들어 사용 할 수 있다. JS 사용 대신 추가해 주어야 할 부분은 다음과 같다. 1. Validator를 implements한 클래스 구현하기 2. 1번의 객체를 TestController.java에 @initBinder 구현한 함수에 바인딩하기 1. TestController에 initBinder 함수 추가하기 @InitBinder public void initBinder(WebDataBinder binder) { DataBean1Validator validator1 = new DataBean1Validator(); //binder.setValidator(validator1); binder... 2020. 5. 27.
JSR-303 / JSR-383 JSR-303 어노테이션은 빈 객체에 주입되는 값의 유효성을 검사한다. properties에 [annotation이름.bean객체이름.변수명] 을 써서 등록한다. properties를 사용하기 위해서 ServletAppContext.java에 등록한다. @Bean public ReloadableResourceBundleMessageSource messageSource() { ReloadableResourceBundleMessageSource res = new ReloadableResourceBundleMessageSource(); res.setBasename("/WEB-INF/properties/error_message"); return res; } setBasename으로 등록했기 때문에, error_.. 2020. 5. 27.
에러 메시지 커스터마이징 유효성 검사를 통해 오류를 검출할 때 그대로 출력하면 JSR-303 에러이다.(우리가 이전 시간에 했던 것) 기본 메세지말고 우리가 만든 메세지를 출력할 수는 없을까? codes[0]을 통해 [에러종류.빈이름.프로퍼티이름]를 확인할 수 있었다. @Bean public ReloadableResourceBundleMessageSource messageSource() { ReloadableResourceBundleMessageSource res = new ReloadableResourceBundleMessageSource(); res.setBasename("/WEB-INF/properties/error_message"); return res; } 메세지를 나타내기 위해서는 당연하게도 properties 파일을.. 2020. 5. 27.
유효성 검사 client가 값을 입력할 때, 혹시 오류가 발생하는지 그 처리를 제대로 해 주었는지 확인하는 작업이다. @Valid를 사용한다. @GetMapping("/input_pro") public String input_pro(@Valid DataBean1 dataBean1, BindingResult result){ System.out.println(dataBean1.getData1()); System.out.println(dataBean1.getData2()); if(result.hasErrors()){ for(ObjectError obj : result.getAllErrors()) { System.out.println(obj.getDfaultMessage()); System.out.println(obj.ge.. 2020. 5. 27.
Properties / Message 변하지 않는 값을 설정할 때 Properties를 기억하라 Help - install New Software - Add에 들어가서 PropertyEditor를 설치한다. [WebContet] 하위폴더에 있는 [META-INF], [WEB-INF], [resources] 에 더해서 [properties]를 하나 생성한다. 그 안에 data1.properties, data2.properties를 생성한다. 1. Properties를 Controller에서 사용하기 aaa.a1 = 100 aaa.a2 = 문자열1 bbb.a2 = 200 bbb.c3 = 문자열2 @PropertySource("/WEB-INF/properties/data1.properties") @PropertySource("/WEB-INF/pr.. 2020. 5. 27.
RequestScope 빈 주입 Bean을 @Autowired를 통해서 자동주입 받을 수 있다. 스프링 코어에서 prototype(새로운 객체 생성)과 singleton(같은 객체에 반복)이 있다. Spring MVC에서는 request,session,application의 기능을 잘 사용해야 한다. *주입된 Bean은 요청 발생시 주입만 이루어지기 때문에!!! request에 자동으로 저장되지 않는다.!!! 따라서 jsp에 전달하기 위해서는 model을 통해서 전달해야 한다. Bean을 생성하는 방법에는 2가지가 있다. 1. @Bean을 이용한 생성 2. @Component를 이용한 생성 1. @Bean을 이용한 생성 @Bean @RequestScope public DataBean1 databean1(){ return new Data.. 2020. 5. 26.
RequestScope - 새로운 요청이 발생해 응답결과가 브라우저로 전달 될 때까지 요청 정보가 담겨 있는 Request 객체를 사용할 수 있다. - HttpServletRequest 객체에는 서버 개발자가 필요에 의해 데이터나 객체를 저장할 수 있고, RequestScope 내에서 사용이 가능하다. redirect : request 객체 소멸 forward : request 객체 유지 HttpServletRequest Model @ModelAttribute 1. redirect @Controller public class TestController { @GetMapping("/test1") public String test1(HttpServletRequest request) { request.setAttribute("dat.. 2020. 5. 26.
반응형