63,800원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결스프링 프레임워크는 내 손에 [스프1탄]
Member 를 RequestParam 으로 받을 때 데이터 문제
로그인 할 때 Member 객체의 password 값에 ,(쉼표) 가 포함되어지는데 왜그런지 모르겠습니다. ㅠ memPassword12 는 테스트 용으로 만들어 봤습니다. debug 를 찍어서 데이터를 확인 했는데 memPassword 부분에서 ,( 쉼표)가 포함됩니다. 테스트로 만든 memPassword12 에는 쉼표가 포함되지있지 않습니다. 컨트롤러에서 debug 를 찍어서 확인 했는데 넘어 올 때 왜 쉼표가 붙는지 모르겠습니다 ㅠ Member 클래스 입니다. UI 에서도 똑같이 1234를 적고 로그인 버튼을 클릭했는데 Member 의 password 에는 쉼표가 붙고String 으로 받은 password 는 정상적으로 나오는데 무슨 차이가 있는지 모르겠네요 ㅠㅠ
- 미해결스프링 프레임워크는 내 손에 [스프1탄]
Content ajax로 갖고오는 부분이 이해가 안됩니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.강의 설명중 이해가 안되서 질문드립니다.!1:36 설명에서 수정에서 데이터를 바꾼다음에다시 제목을 눌렀을 때 수정이 되지 않은 내용이 textarea에 보인다고 하셨는데수정을 하면 DB에 수정내용이 반영되서 다시 제목을 누르면 바뀐 내용이 보이는 상황 같은데요content 부분만 ajax로 다시 갖고 오는게 이해가 잘 되지 않습니다.만약에 list로 보여지는 내용 별도의 내용을 더욱 보여줘야 한다면 상세보기를 하는게 맞는거 같은데 현재 예제에서 content 부분만 따로 갖고오는게 이해가 잘 안되네요
- 미해결스프링 프레임워크는 내 손에 [스프1탄]
34강 조회수 증가가 새로고침을 해야만 되네요
있는 그대로 타이핑 하고 업뎃까지 한다음에 실행을 해주었는데 열고닫고 할때는 조회수가 증가가 안되지만 새로고침을 해야만 증가가 되네요 왜그러는건가요?
- 미해결스프링 프레임워크는 내 손에 [스프1탄]
질문이있어요
int result=memberMapper.register(m);이부분은 xml을보면 단순한 쿼리 인서트문장인데 result에 1과 0은 어디서 지정해준건가요?
- 미해결스프링 프레임워크는 내 손에 [스프1탄]
질문이있어요 $().text를 써준이유가 뭔가요??
$().val()를 사용해도 인풋안에 입력된값을 가져올수 잇을거같은데 $().text와 $().val()의 차이점이 무었인가요?
- 해결됨스프링 프레임워크는 내 손에 [스프1탄]
강의내용중주석관련질문이있어요
여기서 view에 블록은 보이고 wform은 숨기는게 강의내용상 맞는거같은데 주석은 다르게 적혀있네요 오타인가요??
- 미해결스프링 프레임워크는 내 손에 [스프1탄]
idx관련해서 질문이 있어요
listHtml+="<tr>";listHtml+="<td>"+obj.idx+"</td>"; $.each(data, function(index,obj){ // obj={"idx":5,"title":"게시판"~~ }여기서 listHtml+="<td>"+obj.idx+"</td>";에있는 obj.idx 하고 function(index,obj)에있는 index 하고 같은거죠?
- 미해결스프링 프레임워크는 내 손에 [스프1탄]
리스트페이지관련해서 오류가 나네요
root값하고 컨트롤러 매핑은 잘된듯한데 웹화면이 안나오네요
- 미해결스프링 프레임워크는 내 손에 [스프1탄]
mysql콘솔에서 오류가 발생하네요
mysql 콘솔을 실행하려고하면 사진과 같은 오류가 발생하네요 구글링에 있는거의다해봤는데도 안되어서 글남겨요
- 미해결스프링 프레임워크는 내 손에 [스프1탄]
선생님
혹시 스프1탄 최종 프로젝트를 git 소스코드말고 import 해서 바로 볼수 있는 파일을 받을수 있을까요... 괜찮으시면 igr113@naver.com으로 부탁드리겠습니다...
- 미해결스프링 프레임워크는 내 손에 [스프1탄]
스프 1탄 21번 게시판 수정하기
21번 게시판 수정하기에서 14분쯤에 수정화면에서 목록으로 넘어가는거 제대로 체크 안하고 넘어가주셨습니다 ㅠㅠ.. 오류가 뜨네요 하라고 하시는 방법으로 하고 id걸어서 제이쿼리로 해결해볼려고 했는데도 해결이 안돼네요...
- 미해결스프링 프레임워크는 내 손에 [스프1탄]
답답합니다...
-스프 1탄에서 기존에 나프 수강 했던 사람들이면 전자프레임워크 4.0버전 다운 안받고 하셔도 된다해서 그대로 진행했습니다. root-context.xml에서 mybatis scan하실때 namespace 네임스페이스로 xmlns를 불러오셨는데 3.10버전에는 네임 스페이스가 없었고요 커리큘럼 소개하실떄 mysql도 새로 깔아서 workbench로 하신다해서 기존에 했던걸 지웠습니다. 그랬더니 갑자기 수업때 4.0버전에 깔려있는 mysql으로 진행 하신다고 하길레 많이 혼란스렀습니다. 기존꺼는 연결도 안되고 새로 깔아서 하려니까 연결은 또 안돼고 해결법은 없고
- 미해결스프링 프레임워크는 내 손에 [스프1탄]
Transaction 질문드립니다.
안녕하세요 선생님!! 그동안 저혼자 프로젝트 만들어보면서 선생님 도움 많이 받았습니다. 감사합니다. 하면서 보니 배웠던 것도 써봐야 진짜 제 것이 되더라구요. 감사합니다. 그리고 Transaction 처리에 대해서 궁금한 게 있습니다.프로젝트에 만약에 service말고 controller단에서 처리를 할 때에는 컨트롤러 class위에 @Transactional을 붙여주면 Transaction 처리가 되는 건가요? 아니면 추가로 더 해줘야 할 것이 있을까요??
- 미해결스프링 프레임워크는 내 손에 [스프1탄]
maxSwallowSize="-1" 이거 설정했는데도 server.xml에 설정했는데도 안됩니다
저거 설정해도 10M 넘을수 없다며 에러뜨네요..
- 미해결스프링 프레임워크는 내 손에 [스프1탄]
한글이 왜꺠지는지 모르겠어요 ㅠㅠ
server.xml에 설정 다 끝냈는데도왜 한글이 깨져서 "???" 로 나오는지 도저히 모르겠습니다 ㅠ
- 미해결스프링 프레임워크는 내 손에 [스프1탄]
질문드립니다.
안녕하세요 선생님. 제가 혼자 게시판 만들어보는 중에 궁금한 점이 생겨서 여쭙습니다. 회원권한을 종합적으로 수정하는 페이지입니다.준회원, 정회원을 변경하고 회원 등급 변경 버튼을 누르면 해당하는 회원의 등급이 바뀌게 하고 싶습니다. 그런데 이 부분을 update할 때 어떤식으로 하면 좋을지 전혀 감이 안 오는 상태입니다. 어떻게 해보면 좋을까요? view에서는 form에 담아서 post로 보낼 거구요 mapper에서 mybatis를 어떻게 써야할지 잘 감이 안오네요.. 컨트롤러에서는 스프1탄 방식으로 1 하고 0 리턴받아서 rttr로 처리하면 될까요? 선생님의 큰 도움 간절합니다. ㅜㅜ
- 미해결스프링 프레임워크는 내 손에 [스프1탄]
스프링 시큐리티 질문드립니다.
안녕하세요 선생님. 스프링 스프1탄에서 알려주신 스프링 시큐리티 java로 설정하는 법 말고 xml로 동일하게 설정하는 법 알 수 있을까요?? java로 한 것과 동일하게 xml로 설정해보고 싶습니다.
- 미해결스프링 프레임워크는 내 손에 [스프1탄]
'2022.12.23 오후 5:22에 질문드린 추가질문드립니다 글'에 대한 선생님 답변에 대한 질문입니다.
안녕하세요 선생님. 먼저 BoardController입니다. @Controllerpublic class BoardController { @Autowired private BoardMapper boardmapper; // HandlerMapping @GetMapping("/") public String root() { return "redirect:/main"; } @GetMapping("/main") public String main(Model model) { List<Board> list = boardmapper.getLists(); model.addAttribute("list", list); return "main"; // /WEB-INF/views/main.jsp -> forward } @GetMapping("/boardWriteForm") public String boardWriteForm() { return "boardWriteForm"; } @PostMapping("/boardWrite") public String boardWrite(Board vo) { boardmapper.write(vo); return "redirect:/main"; } @GetMapping("/boardMore") public String boardMore(@RequestParam("idx") int idx, Model model) { //public String boardMore(int idx, Model model) { boardmapper.boardCount(idx); Board vo = boardmapper.boardMore(idx); model.addAttribute("vo", vo); return "boardMore"; } @GetMapping("/boardDelete/{idx}") public String boardDelete(@PathVariable("idx") int idx) { boardmapper.boardDelete(idx); return "redirect:/main"; } @GetMapping("/boardUpdate/{idx}") public String boardUpdateForm(@PathVariable("idx") int idx, Model model) { Board vo = boardmapper.boardMore(idx); model.addAttribute("vo", vo); return "boardUpdateForm"; } @PostMapping("/boardUpdate") public String boardUpdate(Board vo) { boardmapper.boardUpdate(vo); return "redirect:/boardMore"; }} 두번째로 main.jsp 입니다.<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%><!DOCTYPE html><html lang="en"><head><title>Bootstrap Example</title><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" /><script src="https://cdn.jsdelivr.net/npm/jquery@3.6.1/dist/jquery.slim.min.js"></script><script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script><script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script></head><body> <jsp:include page="header.jsp" /> <div class="container"> <h2>게시판</h2> <table class="table table-bordered"> <thead> <tr> <th>번호</th> <th>제목</th> <th>작성자</th> <th>작성일</th> <th>조회수</th> </tr> </thead> <tbody> <c:forEach var="vo" items="${list}"> <tr> <td>${vo.idx}</td> <td><a href="boardMore?idx=${vo.idx}">${vo.title}</a></td> <td>${vo.writer}</td> <td>${fn:split(vo.indate, " ")[0]}</td> <td>${vo.count}</td> </tr> </c:forEach> <tr> <td colspan="5" align="right"><a href="boardWriteForm" class="btn btn-primary">게시글 작성</a></td> </tr> </tbody> </table> </div></body></html> 세번째로 boardMore.jsp입니다.<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%><% pageContext.setAttribute("newLineChar", "\n");%><!DOCTYPE html><html lang="en"><head><title>Bootstrap Example</title><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" /><script src="https://cdn.jsdelivr.net/npm/jquery@3.6.1/dist/jquery.slim.min.js"></script><script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script><script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script></head><body> <jsp:include page="header.jsp" /> <div class="container"> <h2>게시글 상세</h2> <table class="table table-bordered"> <tbody> <tr> <td style="max-width: 50px">제목</td> <td>${vo.title}</td> </tr> <tr> <td style="max-width: 50px">내용</td> <td>${fn:replace(vo.content, newLineChar, "<br/>")}</td> </tr> <tr> <td style="max-width: 50px">작성자</td> <td>${vo.writer}</td> </tr> <tr> <td style="max-width: 50px">작성일</td> <td>${fn:split(vo.indate, " ")[0]}</td> </tr> <tr> <td style="max-width: 50px">조회수</td> <td>${vo.count}</td> </tr> <tr> <td colspan="2" align="right"><a href="boardUpdate/${vo.idx}" class="btn btn-primary">수정</a> <a href="boardDelete/${vo.idx}" class="btn btn-danger">삭제</a> <a href="main" class="btn btn-success">목록</a></td> </tr> </tbody> </table> </div></body></html> 네번째로 boardUpdateForm.jsp입니다.<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%><!DOCTYPE html><html lang="en"><head><title>Bootstrap Example</title><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" /><script src="https://cdn.jsdelivr.net/npm/jquery@3.6.1/dist/jquery.slim.min.js"></script><script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script><script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script></head><body><!-- <nav class="navbar navbar-expand-md bg-dark navbar-dark"> <a class="navbar-brand" href="../main"><img style="max-width: 80px" src="../resources/images/logo.png" /></a> <ul class="nav navbar-nav navbar-right"> <li class="nav-item"><a class="nav-link" href="#">김명수님, 안녕하세요</a></li> <li class="nav-item"><a class="nav-link" href="#">회원정보수정</a></li> <li class="nav-item"><a class="nav-link" href="#">로그아웃</a></li> </ul> </nav> --> <br> <div class="container"> <h2>게시글 수정</h2> <form action="../boardUpdate" method="post"> <input type="hidden" name="idx" value="${vo.idx}" /> <table class="table table-bordered"> <tr> <td style="min-width: 100px;">제목</td> <td><input type="text" name="title" class="form-control" value="${vo.title}" required></td> </tr> <tr> <td>내용</td> <td><textarea name="content" class="form-control" rows="10" required>${vo.content}</textarea></td> </tr> <tr> <!-- 추후 세션으로 처리 --> <td>작성자</td> <td><input type="text" name="writer" class="form-control" value="${vo.writer}" readonly></td> </tr> <tr> <td colspan="2" align="right"> <button type="button" class="btn btn-danger" onclick="location.href='../boardMore'">취소</button> <button type="submit" class="btn btn-primary">수정완료</button> </td> </tr> </table> </form> </div></body></html> 마지막으로 header.jsp입니다.<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><nav class="navbar navbar-expand-md bg-dark navbar-dark"> <a class="navbar-brand" href="main"><img style="max-width: 80px" src="resources/images/logo.png" /></a> <ul class="nav navbar-nav navbar-right"> <li class="nav-item"><a class="nav-link" href="#">김명수님, 안녕하세요</a> </li> <li class="nav-item"><a class="nav-link" href="#">회원정보수정</a></li> <li class="nav-item"><a class="nav-link" href="#">로그아웃</a></li> </ul></nav><br> header.jsp를 공통적으로 적용하면 다 잘 되는데 updateForm에서는 logo를 인식하지 못합니다. logo의 주소가 No mapping found for HTTP request with URI [/m01/boardUpdate/resources/images/logo.png] 이런식으로 나오게 됩니다.지금 올린 코드에서는 주석처리한 부분이 공통적으로 한 것이 아니고 그 페이지에만 해당하는 방식으로 했습니다. 공통적으로 처리하는 방법 없을까요?<!-- <nav class="navbar navbar-expand-md bg-dark navbar-dark"> <a class="navbar-brand" href="../main"><img style="max-width: 80px" src="../resources/images/logo.png" /></a> <ul class="nav navbar-nav navbar-right"> <li class="nav-item"><a class="nav-link" href="#">김명수님, 안녕하세요</a></li> <li class="nav-item"><a class="nav-link" href="#">회원정보수정</a></li> <li class="nav-item"><a class="nav-link" href="#">로그아웃</a></li> </ul> </nav> --> 그리고 updateForm에서 취소버튼을 누르나 제출버튼을 누르나 HTTP 상태 400 – 잘못된 요청타입 상태 보고메시지 Required int parameter 'idx' is not present설명 클라이언트 오류로서 인지된 어떤 문제로 인하여, 서버가 해당 요청을 처리할 수 없거나, 처리하지 않을 것입니다. (예: 잘못된 요청 문법, 유효하지 않은 요청 메시지 framing, 또는 신뢰할 수 없는 요청 라우팅).이렇게 나오는 것도 왜 그런지 모르겠습니다... public String boardMore(@RequestParam("idx") int idx, Model model) { //public String boardMore(int idx, Model model) { 컨트롤러에서 이 부분은 int idx가 한개이므로 위나 아래나 다 가능한 것 아닌가요? 아래것으로 하면 오류가 java.lang.IllegalStateException: Optional int parameter 'idx' is not present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type.이런 오류가 납니다.그런데 오류가 나고 나서 다시 목록으로 가 보면 수정은 완료되어 있습니다. DB에 반영은 됩니다. 오류를 고치고자 선생님 올려주신 github 보고 계속 해봐도 도저히 안 됩니다. 어떻게 고쳐야 할까요??
- 미해결스프링 프레임워크는 내 손에 [스프1탄]
해결이 안되는 부분이 있습니다..
선생님 빨간 줄 어떻게 해결해야 하는건지요..?구글에 찾아보니까 ojdbc 필요하다 해서 저는 mysql 사용하려고 하니까 mysql 커넥터 j를 빌드패스에 추가했습니다..소스는 선생님 깃허브 그대로 가져왔습니다.
- 미해결스프링 프레임워크는 내 손에 [스프1탄]
객체 바인딩 한 것을 자바소스로 가져오려면 어떻게 해야 할까요?
model.addAttribute("list", list);에 담은 것을<c:forEach var="vo" items="${list}"><tr><td>${vo.idx }</td><td>${vo.title }</td><td>${vo.writer }</td><td>${vo.indate }</td><td>${vo.count }</td></tr></c:forEach>모델로 담은 것을 jstl 문법이 아닌<%%> 자바 소스로는 어떻게 할수 있을까요?~어떻게 작성하면 되는지 궁금합니다.!