반응형 전체 글709 에러 메시지 커스터마이징 유효성 검사를 통해 오류를 검출할 때 그대로 출력하면 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. Redirect와 Forward 1. Redirect -클라이언트는 응답결과로 받은 요청주소를 직접 요청하게 된다. -브라우저가 요청하는 것이므로 주소창의 주소가 변경된다. -Redirect는 새로운 요청이 발생하는 것이므로 HttpServletRequest 객체는 소멸하고 새롭게 생성되며, HttpSession 객체는 그대로 유지된다. @GetMapping("/test1") public String test1(){ return "redirect:/sub1"; } @GetMapping("/sub1") public String sub1(){ return "sub1"; } 주소창에 마지막 경로는 새롭게 요청됬으므로 sub1이다. 2. Forward -코드의 흐름을 서버상에서만 이동한다. -브라우저는 서버에서의 흐름을 알 수 없기 때문에 주.. 2020. 5. 26. Form 커스텀 태그 Form태그 JSP로 표현을 한다면 코드양이 길고, JSTL을 사용하면 양이 줄어든다. Form에 어떻게 Bean을 주입할까? 1. @ModelAttribute로 받아 setter를 통해 일일히 다 설정하고 request로 넘기기 2. model.addAttribute("name", 객체)로 전달하기 @GetMapping("/test1") public String test1(@ModelAttribute UserDataBean bean){ bean.setUser_name("홍길동"); bean.setUser_id("abcd"); bean.setUser_pw("1234"); bean.setUser_postcode("12345"); bean.setUser_address1("address1"); bean.set.. 2020. 5. 25. 커맨드 객체 *커맨드 객체 클라이언트가 전달해 주는 파라미터 데이터를 주입 받기 위해 사용하는 객체이다. 당연하게도, 객체를 사용하기 위해서는 새로운 클래스를 만들어야 한다. 이 객체의 변수명과 클라이언트가 전달해 주는 변수이름이 같아야 한다. 커맨드 객체는 자동으로 HttpServletRequest 객체에 담긴다. 따라서 jsp로 자동으로 전달된다. data1: data2: ========================================================= @GetMapping(@ModelAttribute DataBean bean){ System.out.println(bean.getData1()); System.out.println(bean.getData2()); return "test"; } .. 2020. 5. 25. ViewResolver 1. Request to DispatcherServlet : 사용자의 요청이 들어오면 먼저 Dispatcher Servlet이 요청한다. 2. Request to HandlerMapping : 그 요청이 어디 Controller로 보내야 하는지 요청한다. 3. Response Controller to DispatcherServlet : 해당 Controller가 어떤 것인지 반환한다. 4. Request to Controller : 해당 요청을 처리할 Controller에게 처리할 것을 요청한다. 5. Response ModeAndView to DispatcherServlet : model 객체와 view에 대한 정보를 DispatcherServlet에 반환한다. 6. Request View Name t.. 2020. 5. 25. 이전 1 ··· 73 74 75 76 77 78 79 다음 반응형