분류 전체보기
-
프로필 페이지 4Spring Boot/프로필 페이지 만들기 2021. 12. 16. 17:49
사진 업로드 사이트에서 업로드 하면, 프로필 화면에 그 사진이 나타나도록 하겠다. - profile.jsp 파일 UserController.java 파일에서 profil 메서드가 return "user/profile"; 할 때 Model 객체에 이미지들을 담아서, 같이 리턴해주면 된다. 요청 주소를 /user/{id} 로 해서 /user/1 이런식으로 오면, 1번 유저의 프로필 화면이(profile.jsp) /user/2 이런 식으로 오면, 2번 유저의 프로필 화면(profile.jsp ) 이 나오도록 하겠다. 파일 @GetMapping("/user/{id}") public String profile(@PathVariable int id, Model model) { User userEntity = use..
-
프로필 페이지 3Spring Boot/프로필 페이지 만들기 2021. 12. 15. 21:28
업로드 이미지 유효성 검사 caption(이미지설명) 은 없어도 되지만, 이미지 파일은 꼭 입력받도록 그런데 ImageUploadDto.java 파일에서 validation 체크로 @NotBlank 와 같은 유효성 검사가 안된다. MultipartFile 타입에서는 불가함 그래서, ImageController.java 파일에서 이미지 업로드 메서드에 아래 코드 추가 if(imageUploadDto.getFile().isEmpty()) { throw new CustomValidationException("이미지가 첨부되지 않았습니다.", null); } 더보기 파일 public class CustomValidationException extends RuntimeException{ private static..
-
프로필 페이지 2Spring Boot/프로필 페이지 만들기 2021. 12. 15. 20:47
이미지 파일 경로와 caption 부분을 데이터베이스에 넣기 파일 @RequiredArgsConstructor @Service public class ImageService { private final ImageRepository imageRepository; @Value("${file.path}") private String uploadFolder; @Transactional public void 사진업로드(ImageUploadDto imageUploadDto, PrincipalDetails principalDetails) { UUID uuid = UUID.randomUUID(); String imageFileName = uuid+"_"+imageUploadDto.getFile().getOriginal..
-
프로필 페이지 1Spring Boot/프로필 페이지 만들기 2021. 12. 14. 17:00
사진 업로드 업로드 실제사이트 화면 upload.jsp 파일에서 1) 이미지 첨부 이 부분이, 위 그림에서 "파일선택" 부분. 즉, "파일선택"을 클릭하면 창이 하나 뜨면서 컴퓨터에 있는 자료를 선택할 수 있게 된다. 더보기 참고 자료 : https://developer.mozilla.org/ko/docs/Web/HTML/Element/Input/file 2) 사진 설명 글 이 부분은 아래의 "사진설명" 이라고 써있는 칸이다. 여기에 사진 설명을 적고 업로드 버튼 누르면 됨. 특히, "파일선택" 을 누른 뒤 home.jpg 라는 파일을 선택했더니, 아래와 같이 home.jpg 그림으로 화면이 바뀌었다. 이는 update.js 라는 파일에 구현되어 있다. function imageChoose(obj) { ..
-
구독하기 2Spring Boot/구독하기 2021. 12. 14. 10:50
@Builder @AllArgsConstructor @NoArgsConstructor @Data @Entity @Table( uniqueConstraints = { @UniqueConstraint( name="subscribe_uk", columnNames = {"fromUserId", "toUserId"} ) } ) public class Subscribe { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; @JoinColumn(name = "fromUserId") @ManyToOne private User fromUser; @JoinColumn(name = "toUserId") @ManyToOne private User ..
-
구독하기 1 - 연관관계 개념Spring Boot/구독하기 2021. 12. 13. 21:46
Board : 게시판 User : 사용자 이 둘의 관계 : 1) Board 네모칸 아래의 N:1(사용자입장) 을 보자 한 명의 사용자(1)가 여러개의 게시글(N)을 쓸 수 있으므로, N:1 이 되었다. 2) 그 아래는 1:1(게시글 입장) 한 개의 게시글(1)은 한 명의 사용자(1)와 매치되므로 이 둘의 총 관계는 맨 위에 동그라미 표시(N:1)인데, 위에서 설명한 1), 2) 로 구한 것인데, 큰쪽으로 따진다. N이 1보다 크니깐, 결과적으로 N:1 관계 그러면 Board 입장에서는 ManyToOne의 관계이고 User 입장에서는 OneToMany 관계이다. 그럼 아래와 같은 상황에서 foreign key 는 누가 가져갈까? id title 1 내용 1 2 내용 2 3 내용 3 id username 1..
-
회원정보 수정 4Spring Boot/회원 관리 4 - 회원정보 수정 2021. 12. 13. 17:11
이제는, Optional 처리를 해본다. 만약 서버에서 id =50 인 유저를 데이터베이스에서 찾으려고 하는데, 데이터베이스에 이 유저가 없을 때. 즉, UserService.java 페이지에서 회원수정 메서드에 보면 User userEntity = userRepository.findById(id).get(); 이 부분이 있는데, 만약 여기에, id 대신 50을 넣고 @Transactional public User 회원수정(int id, User user) { User userEntity = userRepository.findById(50).get(); userEntity.setName(user.getName()); String rawPassword = user.getPassword(); String e..
-
회원정보 수정 3Spring Boot/회원 관리 4 - 회원정보 수정 2021. 12. 12. 20:12
지금까지 했던 회원정보수정에 관해 2가지 처리를 해야한다. (이전 글 : https://happy-fun.tistory.com/165 ) 첫번째, 회원정보 수정 시, name과 password 값은 꼭 받아야 한다. 그래서 빈 값이 들어오지 않도록 유효성 검사를 해준다. 1) 프론트에서 막아주기 2) 유효성 검사 validation 사용 두번째, 만약 1번 유저를 수정하려면 데이터베이스에 1번 유저 데이터가 있어야 하는데, 없을 경우 어떻게 처리? 순서대로 처리해보겠다. 1. 회원정보 수정 시 name, password 필수 입력 받기 - 프론트 update.jsp 파일(회원정보 수정 페이지) 에서 name, password 부분에 required ="required" 추가 이름 패스워드 이렇게 처리하면..