20240308 전자정부(로그인2,로그아웃, 상세보기)
2024. 3. 8. 18:39ㆍ2023.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";
}
'2023.11.21-2024.05.31' 카테고리의 다른 글
20240311 전자정부(DTO>Map 변경, 로그인 설정, 글삭제, 글수정) (0) | 2024.03.11 |
---|---|
20240311 전자정부(DBeaver 24.0.0 설정, 로그인 설정, 메뉴 설정) (0) | 2024.03.11 |
20240307 전자정부(DB-multiboard 만들기, 부트스트랩 사용하기) (0) | 2024.03.07 |
20240307 전자정부(프로젝트 만들기, board, detail) (0) | 2024.03.07 |
20240305 스프링(관리자 페이지-상세보기 창으로 열기) (0) | 2024.03.05 |