Spring11 [Spring]다국어 처리(국제화) 다국어 처리란, 하나의 페이지를 여러가지의 언어로 서비스하는 것을 말한다. 과거에는 언어별로 페이지를 다르게 제작했으나 스프링 프레임워크를 통해 다국어 처리 기능을 사용하여 별도 페이지 제작 없이 하나의 페이지로 다국어를 서비스 할 수 있다. 1.메세지 파일 생성 resource 패키지 하위에 message 폴더를 추가 한다. 해당 폴더 하위에 파일을 생성하는데 이 때 파일명에 언어에 해당하는 locale 코드가 포함되어야한다. ex)xxx_ko.properties 2.스프링 설정 파일에 클래스 추가 message.messageSource 메세지 파일을 읽어들일수 있도록 ResourceBundleMessageSource 클래스를 추가한다. property의 name 속성은 언어가 여러가지기 때문에 bas.. 2022. 9. 29. [Spring]error 페이지 error 페이지 처리하는 방법은 2가지가 있다. 1.어노테이션을 이용한 error 페이지 처리 2.xml 설정을 이용한 error 페이지 처리 1.어노테이션을 이용한 error페이지 처리 DispatcherServlet의 namespace에서 mvc를 추가한다. 추가 한 뒤 Source에 해당 설정 추가 이 때, component-scan 범위에 유의할 것(에러 처리 클래스가 포함된 패키지까지 스캔 해야함) 에러처리를 할 클래스 생성 @ControllerAdvice("com.son.biz") public class CommonExceptionHandler { @ExceptionHandler(NullPointerException.class) public ModelAndView aException(Exce.. 2022. 9. 28. [Spring]파일 업로드 TITLE UPLOAD CONTENT jsp파일에서 input type을 file로 설정한다. 이 때, form에 enctype="multipart/form-data" 속성 추가 controller의 writer.do 요청을 수행하는 메서드 @RequestMapping("write.do") public String write(@RequestParam(value="file",required=false)MultipartFile File,Model model,BoardVO vo,MemberVO mvo,HttpServletRequest request) throws IllegalStateException, IOException { mvo=(MemberVO)request.getSession().getAttribut.. 2022. 9. 27. [Spring]2-Layered Architecture 2-Layered Architecture란? 그림과 같이 Controller에서 DAO를 직접 이용하지 않고 비즈니스 컴포넌트(ServiceImpl)를 이용하여 DAO 객체를 다루도록 구성한 것이다. 이렇게 구성하는 이유는 크게 2가지가 있다. 1. DAO 클래스 교체시 유지보수 유리 Controller에서 DAO를 직접 사용하게되면 DAO 교체시 Controller에 쓰인 DAO를 일일이 다 바꿔야하는 불편함이 있다. 하지만 비즈니스 컴포넌트를 이용하면 DAO가 교체되어도 Controller에서는 바뀌는 부분이 없어 유지보수가 유리하다. 2.AOP 적용 AOP의 pointcut이 Impl 클래스에 적용되어 있기 때문에 Controller에서 직접 DAO를 사용하면 AOP가 적용되지 않는다. 비즈니스 컴.. 2022. 9. 26. [Spring]@RequestParam,@ModelAttribute,@SessionAttributes @RequestParam command 객체에는 없는 파라미터를 전달해주기 위하여 사용 searchCondition과 searchContent는 command 객체로 존재하지 않지만 form을 통하여 main.do로 요청하는 상황 main.do 요청시 실행되는 메소드인 main의 파라미터에 searchContent가 있고 해당 파라미터 앞에 @RequestParam 어노테이션을 붙임 이 어노테이션은 해당 파라미터에 요청으로부터 값을 매핑해주고 매핑되는 값이 없을시에 기본값을 지정해줄수있다 required는 값이 필수적으로 있어야하는지에 대한 유무이며 false로 설정하여 값을 받지 않아도 되도록 하였다. 이렇게 command 객체에 존재하지 않는 파라미터를 사용할 수 있다. @ModelAttribute .. 2022. 9. 22. [Spring]@Controller 1.DispatcherServlet의 namespace에서 context 추가 2.context:conponent-scan으로 스캔 범위 설정 3.Controller 파일에 @Controller 추가 해당 클래스에서 맵핑할 메소드에 RequestMapping 추가 @Component와 같이 해당 클래스를 메모리에 할당하여 스프링 컨테이너가 찾을 수 있드록 한 뒤, RequestMapping을 이용하여 요청에 따라 작동시킬 메소드를 지정함 파라미터가 자동 맵핑되기 때문에 따로 request.Parameter를 사용할 필요 없이 변수명을 틀리지 않았다면 같은 변수명을 찾아 자동으로 맵핑되어 값을 지정한다. 스프링 컨테이너가 command 객체를 생성하여 사용자가 입력한 값을 setter 인젝션을 하기 때문에.. 2022. 9. 21. 이전 1 2 다음