Spring

Spring 일지 #25 (20210914) 화면 구현(주소 삭제, 수정)

uni5948 2021. 9. 24. 17:38

25. 주소 삭제, 수정

-주소 삭제

 *저장소 삭제 방법 추가(AddressRepository.java)

 

... ...

//주소번호가 오면 삭제

    @Transactional

    void deleteByNo(Long no);

 

    //주소번호와 주소정보가 둘다 일치 할때 삭제

    @Transactional

    void deleteByNoAndAddr(Long noString addr);

 

    //주소번호와 회원의 아이디가 일치 할때 삭제

    @Transactional

    void deleteByNoAndMember_Userid(Long noString userid);

... ...

 

 *address_delete GET 등록(MemberController.java)

 

//127.0.0.1:8080/ROOT/member/address_delete?no=

        @GetMapping(value="/address_delete")

        public String addressDelete(Authentication auth, @RequestParam(name = "no")long no) {

           if(auth != null) {

            User user = (Userauth.getPrincipal();

            //기본키의 주소번호 and 현재 사용자의 아이디

            aRepository.deleteByNoAndMember_Userid(nouser.getUsername());

            

            return "redirect:/member/address";

           }

           return "redirect:/member/login";

        }

 

 *주소 삭제

주소 삭제

 

-주소 수정

 *address_update GET 등록(MemberController.java)

 

//127.0.0.1:8080/ROOT/member/address_update?no=

        @GetMapping(value="/address_update")

        public String addressUpdate(Authentication authModel model, @RequestParam(name = "no")long no) {

            if(auth != null) {

                Address address = aRepository.findById(no).get();

                model.addAttribute("address"address);

                return "member_address_update";

            }

            return "redirect:/member/login";

        }

 

 *페이지 생성(member_address_update.jsp)

 

<!DOCTYPE html>

<html lang="ko" xmlns:th="http://www.thymeleaf.org">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

    <form th:action="@{/member/address_update}" method="post">

        <input type="text" name="no" th:value="${address.no}" readonly />

        <input type="text" name="addr" th:value="${address.addr}" placeholder="주소입력"/>

        <input type="submit" value="주소 수정" />

    </form>

</body>

</html>

 

 *화면 확인

수정 화면

 *address_update POST 등록(MemberController.java)

 

 @PostMapping(value = "/address_update")

        public String addressUpdatePost(Authentication auth

            @ModelAttribute Address address) {

            if(auth != null) {

                User user = (Userauth.getPrincipal();

                Member member = mRepository.findById(user.getUsername()).get();

                address.setMember(member);

                aRepository.save(address);

                return "redirect:/member/address";

            }

            return "redirect:/member/login";

        }

 

 *entity 수정(Address.java)

 **수정 시 날짜는 변경되지 않도록 하기 위해 updatable = false 추가한다.

 

... ...

    @CreationTimestamp

    @Column(updatable = falsename = "REGDATE" )

    private Date regdate;   //등록일

... ...

 

 *수정하기

수정 전
수정 후