20240308 전자정부(로그인2,로그아웃, 상세보기)

2024. 3. 8. 18:392023.11.21-2024.05.31

 

MemberController > @PostMapping("/login") 수정

	@PostMapping("/login")
	   public String login2(@RequestParam Map<String, Object> map) {

	      System.out.println(map);
	      // 32번 줄에 있는 map 이랑 같은 애 맞음. 같은 map 에다가 저장하는 것
	      map = memberService.login(map); // 받아노는 값이 하나가 아니니까 map 에 넣어줘

	      if (util.str2Int(map.get("count")) == 1) { // mapper 에서 오는 count(*) 의 별칭
	         // 정상 세션 -> board 로 이동
	         HttpSession session = util.getSession();
	         session.setAttribute("mid", map.get("id"));
	         session.setAttribute("mname", map.get("mname"));
	         return "redirect:/freeboard";
	      } else {
	         // 로그인 불가 -> 화면이동 다시 로그인으로
	         return "redirect:/login";
	      }
	   }

 

 

 

 

MemberController> logout 수정

	@GetMapping("/logout")
	public String logout(HttpSession session) {
		if(session.getAttribute("mid") !=null) {
			session.removeAttribute("mid");
		}
		if(session.getAttribute("mname") !=null) {
			session.removeAttribute("mname");
		}
		session.invalidate();
		
		return "redirect:/login";
	}

 

 

 

 

WebApplicationTests(이거 뭔지 모르겠음.)

package com.mask.web;

import static org.junit.jupiter.api.Assertions.assertEquals;

import java.util.HashMap;
import java.util.Map;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import com.mask.web.service.MemberService;

@SpringBootTest
class WebApplicationTests {
	@Autowired
	MemberService memberService;
	

	@Test
	void contextLoads() {
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("id", "mask");
		map.put("pw", "01234567");
		
		Map<String, Object> result = memberService.login(map);
		
		//assertEquals(0,Integer.parseInt(String.valueOf(result.get("count"))));
		
		int num = 100;
		assertEquals(100, num);
	
	}

}

 

 

 

 

detail.html > del, update 추가

	<div class="col-6 text-start">
	[[${detail.mname }]]님 
	<i class="bi bi-pencil-fill" th:id="${detail.mtno }" onclick="update(this.id)"></i> 
	<i class="bi bi-trash2-fill" th:id="${detail.mtno }" onclick="del(this.id)"></i>
	</div>

 

 

 

 

 

 

 

detail.html > 스크립트 추가

        <script type="text/javascript">
      function update(no){
    	  Swal.fire({
    		  title: "수정합니까?",
    		  text: "해당 내용을 수정합니다.",
    		  icon: "warning",
    		  showCancelButton: true,
    		  confirmButtonColor: "#3085d6",
    		  cancelButtonColor: "#d33",
    		  confirmButtonText: "수정"
    		}).then((result) => {
    		  if (result.isConfirmed) {
    		    Swal.fire({
    		      title: "수정을 선택했습니다.",
    		      text: "수정합니다.",
    		      icon: "success"
    		    });
    		  }
    		});
      }
        
      function del(no){
    	  Swal.fire({
    		  title: "삭제합니까?",
    		  text: "해당 내용을 삭제합니다. 복구가 불가능합니다.",
    		  icon: "warning",
    		  showCancelButton: true,
    		  confirmButtonColor: "#3085d6",
    		  cancelButtonColor: "#d33",
    		  confirmButtonText: "삭제"
    		}).then((result) => {
    		  if (result.isConfirmed) {
    		    //Swal.fire({title: "삭제를 선택했습니다.",text: "삭제합니다.",icon: "success"});
    		    //location.href="/postDel?no="+no;
    		    let form = document.createElement('form');
    		    form.setAttribute('method','post');
    		    form.setAttribute('action','/postDel');
    		    
    		    let input = document.createElement('input');
    		    input.setAttribute('type','hidden');
    		    input.setAttribute('name','no');
    		    input.setAttribute('value', no);
    		    
    		    form.appendChild(input);
    		    document.body.appendChild(form);
    		    form.submit();
    		  }
    		});
      }
      
        </script>

 

 

 

삭제하기

IndexController > postDel

	@PostMapping("/postDel")
	public String postDel(@RequestParam("no") int no) {
		System.out.println(no);
		return "redirect:/freeboard";
	}