스프링

스프링 USER권한 페이지

근즈리얼 2021. 10. 8. 20:46
728x90

1. UtilController 수정

2. find.html 

 

1. UtilController 

 

UtilController 코드

package com.asdanything.ask.controller;


import com.asdanything.ask.Entity.Member;
import com.asdanything.ask.Entity.Register;
import com.asdanything.ask.dto.RegisterDto;
import com.asdanything.ask.repository.MemberRepository;
import com.asdanything.ask.repository.RegisterRepository;
import com.asdanything.ask.service.RegisterService;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

import javax.validation.Valid;
import java.util.List;

@Controller
@RequiredArgsConstructor
public class UtilController {

    private final RegisterService registerService;

    private final MemberRepository memberRepository;
    private final RegisterRepository registerRepository;

    @GetMapping("/util/find")
    public String findForm(Model model){
        List<Register> findAll = registerRepository.findAll();
        model.addAttribute("findRegister",findAll);
        String search="";
        model.addAttribute("search", search);
        return "util/find";
    }

    @PostMapping("/util/find")
    public String find(@RequestParam String search, Model model){
        System.out.println(search);
        List<Register> findSearch = registerRepository.findByAbilityContaining(search);
        model.addAttribute("findSearch", findSearch);
        return "util/search";
    }

	~
    ~
    ~
}

- util/find post매핑의 메소드를 추가했습니다.

- @RequestParam을 통해서 검색된 단어를 가져오고 그 단어를 이용해서 registerRepository에서 데이터를 찾아옵니다.

 

2. find.html

 

find.html 코드

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
</head>
<body>
<h2>찾아보기</h2>
<form action="/util/find" method="post">
    <div>
        <label th:for="search">검색</label>
        <input th:type="text" name="search" placeholder="이름을 입력하세요">
    </div>
    <button type="submit">제출하기</button>
</form>

<table border="1">

    <thead>
        <tr>
            <td>순번</td>
            <td>능력</td>
            <td>주소</td>
            <td>핸드폰</td>
            <td>이름</td>
        </tr>
    </thead>

    <tbody>
        <tr th:each="register, status:${findRegister}">
            <td th:text="${status.index}"></td>
            <td th:text="${register.ability}"></td>
            <td th:text="${register.address}"></td>
            <td th:text="${register.phoneNum}"></td>
            <td th:text="${register.member.getName()}"></td>
        </tr>
    </tbody>
</table>


</body>
</html>

 

3. 결과물 및 다음 기능

 

USER 계정의 찾아보기 페이지

 

원하는 단어를 입력하고 얻은 화면 ex) 세탁기

 

이제까지 로그인 회원가입, 등록, 검색을 완성했습니다.

앞으로 기능에 대한 계획은

회원정보 수정, 등록 수정, 댓글 기능을 계획하고 있습니다.

728x90