본문 바로가기

Spring97

[Spring] 검증(validation) - 6 Bean Validation @어노테이션 build.gradle implementation 'org.springframework.boot:spring-boot-starter-validation' 위 implementation을 한줄 추가해주면 validation을 사용할 수 있다. 추가 후 refresh gradle project. MemberVO VO에가서 어노테이션 NotBlank와 Range, NotNull과 Max에 validation.constraints를 사용할 수 있는걸 볼 수 있다. @NotBlank - 빈값 + 공백만 있는 경우 허용하지 않는다. @NotNull - null을 허용하지 않는다. @Range(min = ~ , max = ~ ) - 범위 안의 값이어야 한다. @Max(99) - 최대 99까지만 된다. MemberCo.. 2023. 10. 10.
[Spring] 검증(Validation) -5 Validator 인터페이스 https://bright-landscape.tistory.com/407 [Spring] 검증(Validation) -4, rejectValue란? [Spring] 검증(Validation) -3 , FieldError와 properties값 가져오기 [Spring] 검증(Validation) -2 BindingResult MemberController BindingResult 데이터 바인딩 과정에서 발생하는 검증 오류를 보유하고 있는 객체이다. 주로 bright-landscape.tistory.com MemberValidator supports 메서드는 특정 클래스의 유효성 검사를 지원하는지 여부를 확인한다. 이 구현에서는 주어진 클래스가 MemberVO로부터 할당 가능한지 확인하고, 가능하다면 tru.. 2023. 10. 6.
[Spring] 검증(Validation) -4, rejectValue()와 typeMismatch [Spring] 검증(Validation) -3 , FieldError와 properties값 가져오기 [Spring] 검증(Validation) -2 BindingResult MemberController BindingResult 데이터 바인딩 과정에서 발생하는 검증 오류를 보유하고 있는 객체이다. 주로 폼 데이터를 도메인 객체에 바인딩할 때 사용된다. 예를 bright-landscape.tistory.com rejectValue() , reject() 를 사용하면 FieldError , ObjectError를 직접 생성하지 않고, 깔끔하게 검증 오류를 다룰 수 있다. rejectValue() 는 FieldError 이고 reject() 는 ObjectError이다. rejectValue(@Nullab.. 2023. 10. 5.
[Spring] 검증(Validation) -2 BindingResult MemberController BindingResult 데이터 바인딩 과정에서 발생하는 검증 오류를 보유하고 있는 객체이다. 주로 폼 데이터를 도메인 객체에 바인딩할 때 사용된다. 예를 들어, 사용자가 웹 폼을 통해 입력한 데이터를 서버로 전송하고 해당 데이터를 처리하기 위해 폼 데이터를 도메인 객체에 바인딩하려 할 때 사용된다. BindingResult 객체는 바인딩 시 발생할 수 있는 검증 오류를 저장하고 관리한다. 이를 통해 개발자는 검증 오류를 쉽게 확인하고 처리할 수 있다. 데이터 바인딩 중 오류가 발생하면, 해당 오류 정보를 BindingResult 객체를 통해 확인할 수 있다. 예를 들어, 아래와 같이 컨트롤러 메서드에서 @Valid 어노테이션을 사용하여 데이터 바인딩 및 검증을 수행하고, .. 2023. 9. 27.
[Spring-Boot , React] 스프링부트와 React 연동하기 0. Redux DevTools 구글에 Redux DevTools를 치고 Crome에 추가시켜준다. https://start.spring.io/ 먼저 위 사이트에서 스프링 프로젝트를 하나 생성해서 SpringBoot로 Gradle해왔다. 1. 프론트에서 React설치하기 npx create-react-app fronted 비주얼스튜디오에서 React를 설치한다. fronted 해당 폴더에서 npm start로 해서 리액트가 실행되면 리액트 실행까지 완성이다. 2. Proxy 설정하기. ( CORS 관련 오류 방지를 위해 proxy를 설정 ) npm install http-proxy-middleware --save CORS (Cross Origin Resource Sharing) 서버와 클라이언트가 동일한.. 2023. 9. 26.
[Spring] 자바스크립트 JSON 문자열, 컨트롤러에서 객체로 변환 javascript var encodedData = encodeURIComponent(JSON.stringify(data)); JSON.stringify()를 사용하여 JavaScript 객체를 JSON 문자열로 변환한 후, encodeURIComponent()를 사용하여 JSON 문자열을 URL에서 사용할 수 있는 형태로 인코딩한다. location.href = "/update?memberVO=" + encodedData; 생성된 인코딩된 데이터를 URL 파라미터로 사용하여 /update 엔드포인트로 이동한다. memberVO라는 이름으로 인코딩된 데이터를 전달하게 된다. 이렇게하여 /update 엔드포인트에서는 memberVO 파라미터를 받아 해당 데이터를 JSON 형태로 파싱할 수 있다. 컨트롤러 .. 2023. 9. 19.
[Spring] SqlSessionTemplate 대신 Mapper 인터페이스 사용 SqlSessionTemplate 사용한 ServiceImpl 클래스 여태까지 나는 ServiceImpl 클래스에서 항상 SqlSessionTemplate을 주입받아 사용해왔다. 하지만, 또 다른 방법이 있어 기록하고자한다. Mapper 인터페이스를 사용한 ServiceImpl 클래스 하지만 위 ServiceImpl을 보면 MemberMapper 라는 녀석을 주입받아 사용한다. 그리고 mapper 패키지에 MemberMapper라는 녀석이 보인다. 얘는 뭐하는 놈일까? MemberServiceImpl 클래스에서 private MemberMapper memberMapper 필드를 @Autowired로 주입하고 사용하는 이유는 Spring에서 데이터 액세스를 수행하는 객체에 대한 의존성을 주입하기 위해서이다.. 2023. 9. 18.
[Spring] 스프링 부트 mySql mybatis 연동하기 (gradle) mySQL 위 데이터들을 콘솔에 뿌려볼 것이다. 1. build.gradle HTML 삽입 미리보기할 수 없는 소스 위 코드를 build.gradle에 있는 dependencies에 복붙해주자. (추가 한뒤 리프레쉬 해야함.) 2. application.properties HTML 삽입 미리보기할 수 없는 소스 위 코드를 application에 복붙해준다. 이때 url에 있는 bitdb는 왼쪽 사진에 있는 테이블 명을 나타내고, username과 password는 root 계정과 그 비밀번호를 나타냈다. 또한 mybatis 경로를 설정해주어야하는데, 노란색 표시와 같이 경로를 잘 지정해주자. member-mapper.xml MemberVO mapper와 대입될 데이터들을 만들어준다. service Con.. 2023. 9. 15.
[Spring-Legacy] validate 유효성 검사 jsp jsp에서 input 태그의 name과 age, 그리고 js에서 여기에 데이터를 입력 후 serialize를 통해 ajax로 넘긴다. VO와 컨트롤러 ValidateModel이라는 객체를 만들어, input 데이터를 받아주기 위해 name과 age를 만들었고, 컨트롤러 ajax에서 modelAttribute로 받아 콘솔에 찍어볼 것이다. 데이터를 찍어보니 잘 나온다. ValidaterTest ValidaterTest 클래스를 만들어, Validator를 구현시켜준다. 그리고 오버라이드를 시켜주고, 오른쪽과 같이 return을 수정한다. 이렇게 지정해야 해당 모델을 검사해준다. ValidaterTest 문자를 계산하는 StringUtils는 org.springframework.utl을 사용해준다. .. 2023. 9. 14.
[Spring-Legacy] XML로 Interceptor 인터셉터 사용하기 interseptor.jsp 로그인 버튼을 누르면, 컨트롤러에 있는 loginInterChk로 이동할 것이다. 컨트롤러 컨트롤러로 오게되면 콘솔창에 loginInterProcess Controller 를 출력하고, 페이지 이동을 한다. 인터셉터 컨트롤러 컴포넌트의 value를 inter로 지정해주고, 이를 다른곳에서 참조하게 되면 인터셉터가 실행되는 것이다. servlet-context.xml 1. xml에서 인터셉터를 등록해주고, 2. mapping 시키는 곳에 path를 적용시킬 컨트롤러 주소, 3. bean을 인터셉터 value 값을 대입. 해당 페이지에서 LOGIN을 눌르면, 콘솔창에 preHandle, postHandle, afterCompletion 모두 나오는 걸 볼 수 있다. 인터셉터 컨트.. 2023. 9. 14.
[Spring] 구글 차트 DB에 넣어 Ajax로 시각화하기 https://developers-dot-devsite-v2-prod.appspot.com/chart/interactive/docs/gallery/piechart?hl=ko 시각화: 원형 차트 | Charts | Google for Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 의견 보내기 시각화: 원형 차트 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 개요 SVG developers.google.com 구글 차트로 데이터를 시각화시켜보았다. 방법1. (Iterator 사용하고,, 어려운 방법이니 추천하지 않는다.) ajaxDemo3.jsp HTML 삽입 미리보기할 수 없는 소스 : Goog.. 2023. 9. 14.
[Spring-Legacy] Ajax 사용시 with a status of 406 () 해결법 xml로 Ajax써서 Json으로 데이터를 다시 받기까지 고난에 고난의 연속이다. 드디어 해결이 됬다. 방법은 간단하다 porm.xml HTML 삽입 미리보기할 수 없는 소스 위 코드를 넣어주었다. servlet-context.xml 위 한줄을 추가해주면 DB에 저장된 데이터들이 아래 컨트롤러를 통해 성공적으로 Ajax로 넘어간걸 볼 수 있다. 컨트롤러 Ajax에서 갖고온 데이터 조회 후 조회된 결과값 반환한다. 2023. 9. 12.