일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Java
- 컬렉션
- Scanner
- boxing
- 내장객체
- start.spring.io
- Short
- 싱글턴
- 인텔리제이
- 루프
- bootstrap
- 박싱
- 자동형변환
- 빌드
- unboxing
- 스프링
- Jenkins
- 메소드
- https://start.spring.io
- 제네릭
- dependency
- 무한
- suvlet
- maven
- 싱글톤
- wrapper
- 제너릭
- 언박싱
- 클래스
- 콜렉션
- Today
- Total
목록K-DigitalTraining 강의/11. Spring (16)
Developer Gonie
* 이번 게시물은 에서 name 부분을 배열 형태로 작성할 수 있는지 처음 알게되어 작성하였다. 컨트롤러로 전송하고 싶은 부분 * examlist 라는 이름은 ExamListBean 클래스의 멤버변수 이름임에 주의하자. 위와같이 처리하기 위해 필요한 2개의 Bean 클래스 import java.util.List; public class ExamListBean { private List examlist; public ExamListBean() { super(); } public ExamListBean(List examlist) { super(); this.examlist = examlist; } public List getExamlist() { return examlist; } public void set..
@Controller - 컨트롤러 @RequestMapping - 요청을 받는 @ResponseBody - jsp파일이 아닌 다른걸 반환하고 싶을 때 @Autowired - 컨테이너가 관리중인 객체중에서 타입이 일치하는 것을 자동 주입해줌. 따라서, 참조변수명은 일치할 필요가 없음. 다만 같은 타입으로 여러 객체가 존재한다면 Qualifier로 명시해줄 필요 있음 @Qualifier - 어떤 객체를 넣을지 구체화 해주는 것 @Component - 컨테이너가 자동으로 생성하게 하는 것 @RequestParam - 넘어오는 파라미터를 받는 @Override - 상속받은 메소드 재정의 @ModelAttribute - 커맨드객체 별칭설정 @Valid - 유효성 검사 @NotBlank @NotNull @NotEm..
// select 선택박스 : @NotBlank, @NotEmpty 가능 (@NotNull 불가) // checkbox : @NotNull, @NotBlank, @NotEmpty 모두 가능 // radio : @NotNull, @NotBlank, @NotEmpty 모두 가능 // input text : @NotBlank(공백이면 통과X), @NotEmpty, (@NotNull 불가) 이외 @Length : 문자열 길이 @Size : 문자열 길이(Length와 같음) @Pattern : 정규표현식을 이용한 유효성 검사 @Max : 최대값 지정 @Min : 최소값 지정 @Range : n1~n2사이의 수만 입력받고 싶을때
form에서 입력한 값을 컨트롤러의 요청처리 메소드 쪽에서 받는 방법 여기서 submit을 눌러 전송한다고 했을 때, 컨트롤러의 요청 처리 메소드에서 이 4개 변수 값들을 받는 방법에는 몇가지가 있을 까? 방법1. 전부를 각각 @RequestParam() 타입명 변수명 으로 받을 수 있을 것이다. 방법2. ProductBean이 있다는 가정하에 num, name, price는 커맨드 객체로 받고 pageNumber만 @RequestParam() 타입명 변수명 으로 받을수도 있을 것이다. ProductBean class ProductBean{ private int num; private String name; private int price; ProductBean(){ } ProductBean(int nu..
다음은 컨트롤러 내의 메소드로 제품 상세 페이지에서 주문 버튼을 눌렀을 때, 장바구니에 추가하는 기능을 가진 메소드이다. 로그인 private final String command = "add.mall"; @RequestMapping(value = command) public String addCart(ProductBean pbean, HttpSession session, @RequestParam("pageNumber") String pageNumber) { //만약 로그인 안했으면, 로그인부터 하고 오도록 하는 설정 if(session.getAttribute("loginInfo") == null) { session.setAttribute("destination", "redirect:/detail.prd..
src\main\webapp\ 밑에 바로 jsp파일이 위치하게 하면 오른쪽 마우스 클릭으로 바로 실행할 수 있다.
* 아래서 'Spring Bean Configuration XML 파일 작성방법 Case2' 어노테이션 @Component와 @Autowired, @Qualifier 를 이용한 DI(의존성 주입) 방식을 프로젝트에서 적용하게 될거 같다. * 아래에서 Main 클래스의 main 메소드를 보면 xml 혹은 컴포넌트 스캔을 이용해 컨테이너를 생성하는데, 이때 xml에서 태그로 작성된 클래스의 객체 혹은 @Componet 어노테이션이 붙은 클래스의 객체의 생성자가 즉시 호출되더라. 이말은 즉슨 컨테이너를 생성하는 즉시, 관리해야할 이 객체들을 생성하여 가지고 있다는 뜻임. 이 객체들이 전부 생성될 때는 의존관계에 있는 것들은 자동으로 주입해준다. 아래서 생략이 가능한 속성 및 간소화 방법 // property ..
스프링에서의 의존성 주입(DI, Dependency Injection) * 스프링에서도 다음과 같은 방식으로 DI를 구현한다. 1) 생성자를 이용한 주입 2) setter 메소드를 이용한 주입 3) @Autowired 어노테이션을 이용한 주입 다만, 순수 Java 코드와 다르게 스프링에서는 직접 생성자 혹은 setter 메소드를 호출하지 않으며 이를 대신해 XML이나 어노테이션을 이용해 호출되도록 한다 ex) @Autowired 어노테이션을 이용한 주입(수업시간에 주요하게 사용했던 방식) 아래의 게시글에서 하단의 'Spring Bean Configuration XML 파일 작성방법 Case2' 를 참고하면 된다. https://ldgeao99-developer.tistory.com/537 8. 스프링(S..
의존성 주입(DI, Dependency Injection) 이란? 다음은 의존성 주입을 설명하기 위한 예시이다. Car 인터페이스가 존재하고, 이를 상속(implement)받아 drive메소드를 완성한 Grandeur, Morning 클래스가 존재하며, 아무것도 상속받지 않은 Consumer 클래스도 존재하는데, Car 인터페이스 타입의 car 멤버변수를 가진다. 이렇게 설계한 경우 Consumer 객체가 취향에 따라 car 멤버변수의 값으로 Grandeur 객체를 갖거나 Morning 객체를 갖는게 가능하다.(Grandeur, Morning 모두에 의존 가능한 Consumer ) 만약 이와 다르게 Car 인터페이스가 존재하지 않고, 아무것도 상속받지 않은 상태로 구현된 Grandeur, Morning ..
스프링에 존재하는 컨테이너의 종류 * 스프링은 프로젝트를 실행하면 컨테이너라는 주체가 만들어지는데, 이것은 스프링빈으로 등록된 객체들의 생명주기를 관리한다. 1) BeanFactory 인터페이스 프로젝트를 실행하여 컨테이너가 구동되더라도 스프링빈으로 등록된 모든 객체가 생성되지 않으며, 필요한 객체가 있다면 그때 그때 동적으로 생성한다. 2) ApplicationContext 인터페이스(대부분의 스프링 프로젝트가 이용하는 컨테이너) BeanFactory와 유사하게 빈 정의를 로드하고, 빈을 연결하고, 의존관계에 따라 빈을 분배한다. 프로젝트를 실행하여 컨테이너가 구동되는 시점에 스프링빈으로 등록된 모든 객체를 생성한다. (이를 즉시로딩 = pre-loading 이라고 함) 상속받은 인터페이스에 대한 각 ..
아래의 글은 javascript를 공부하면서 작성한 것인데 이것을 여기서도 그대로 사용 가능하다. https://ldgeao99-developer.tistory.com/410 [8주차] 35. 정규표현식을 이용한 사용자입력 유효성 검사 * 이외에도 추가적인 것들이 많은데 그것은 강의의 pdf 파일을 참고하자 * 정규 표현식 '/ ~ /' 을 복사해서 다음의 사이트에 넣고 실행하면 정규표현식에 어떤게 입력가능한지 그림으로 보여준다. ldgeao99-developer.tistory.com
스프링(Spring) 한글 인코딩 설정 방법 src/main/webapp/WEB-INF/web.xml 파일에서 태그의 자식으로 아래 코드를 삽입하면 된다. 아래 코드가 의미하는 바는 모든 요청에 대한 응답을 UTF-8 방식으로 인코딩을 해주겠다는 것의 의미(한글처리) encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true encodingFilter /* 이 의미하는 바 이 /* 라고 되어있으므로 모든 요청을 다루며(받으며), 모든 요청은 이 encodingFilter인 곳에 가서 처리되도록 하라는 의미 부분이 의미하는 바 들어온 요청을 org.springframework.we..