728x90
반응형

Spring 11

[Spring Project] 도서관만들기 #5-2 게시판 화면구성

※ 실제작업순서와 포스팅순서가 다를 수 있습니다(프로젝트 진행율과 포스팅날이 다름) 0. 완성사진 1. 백엔드 - 쿼리성능 최적화를위해 hint 사용(/* */) , 신규 게시물이 상단으로 표시되게 끔 역순으로 조회 - CDATA를 사용해 데이터(특수문자)를 문자 그대로 사용되게끔 작성 - refid="criteria"는 추후 게시글 내 검색 기능에서 설명예정 - 정리하자면 1.게시글을 역순으로 불러온다 2.Criteria.class에서 설정한 1,10 즉 10개씩 가져온다 두가지 기능이 포함된 쿼리 - 상동하게 refid=criteria는 추후 설명예정 - 총 게시물 개수(count)를 조회하는 쿼리 2. 작동 콘솔 - 게시물을 불러오는 쿼리와 total 게시물 갯수를 불러오는 쿼리가 잘 작동되는것을 ..

프로젝트 2023.07.04

[Spring Project] 도서관만들기 #5-1 게시판 글쓰기

※ 실제작업순서와 포스팅순서가 다를 수 있습니다(프로젝트 진행율과 포스팅날이 다름) 0. 작동영상 및 페이지사진 1. 테이블 생성 1-1 게시글 1-2 게시글 내부 사진(attach) 2. 백엔드 구성 자동생성되는 시퀀스값을 bno로 저장합니다 즉 게시물에서 제목,내용,작성자,파일정보(uuid,uploadpath)등을 받아와 mybatis로 백엔드에 저장합니다. 3. 프론트 구성 - 작성자/연락처는 session에 저장된 auth에서 바로 불러옴 - 작성일은 new Date()로 불러옴 - textarea는 ckeditor 사용 - 첨부파일 스크립트 - 파일첨부시 확장자 및 용량을 체크 후 ajax(비동기) 방법으로 controller에 데이터를 넘긴다. - 첨부되는 파일들을 c:\\upload폴더에 저..

프로젝트 2023.07.04

[해결] Available parameters are [arg1, arg0, param1, param2 오류 _ myBatis

문제 : org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'booktitle' not found. Available parameters are [arg1, arg0, param1, param2] org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77) org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.ja..

문제 및 해결 2023.07.04

@RequestMapping 대신 @PostMapping @GetMapping 쓰는 이유

@RequestMapping 대신 @PostMapping @GetMapping 쓰는 이유가 궁금했다. 구글링으로 여러 블로그를 찾아봤지만 "코드가 줄어들기 때문"이라는 짤막한 답변이 대부분이었다. @RequestMapping(value="경로", method=RequestMethod.GET) @RequestMapping(value="경로", method=RequestMethod.POST) 이렇게 긴 코드가 @GetMapping("경로") @PostMapping("경로") 이렇게 짧아진다는 설명이다. 틀린 말은 아니지만 이건 질문에 대한 답이 되긴 어렵다. 왜냐하면 @RequestMapping의 경우에도 method 부분을 생략하고 @RequestMapping("경로") 처럼 value만 명시해서 사용할 ..

기타 2023.07.04

[Spring Project] 도서관만들기 #4 정보수정/탈퇴

※ 실제작업순서와 포스팅순서가 다를 수 있습니다(프로젝트 진행율과 포스팅날이 다름) 0. 정보수정 작동영상 1. 정보수정화면 2. 백엔드 코드 - session에 남아있는 로그인정보에서 id를 가져온다 - MemberVO를 만들어 id(session)와 pw(입력된값)을 set한 후, authenticate로 백엔드의 값과 비교 - authVo에 인코딩 전 pw(입력된 pw)를 set 한 후 session에 다시 넣어준 후 정보수정페이지(editInfo)로 이동한다. - editInfo에서는 똑같이 session에서 id를 가져와서 getUserInfo로 회원정보를 불러온다. - 받아온 회원정보에 pw값 초기화(정보수정에서 pw란을 비우기위함) 및 email split(abc@abc형태로 저장되고있기때문..

프로젝트 2023.06.29

[Spring Project] 도서관만들기 #3 로그인,로그아웃

※ 실제작업순서와 포스팅순서가 다를 수 있습니다(프로젝트 진행율과 포스팅날이 다름) 1. 로그인화면 2. 컨트롤러 코드 2-1 AuthVO 2-2 authenticate() - selectMemberByUserid -> 로그인 시 입력한 아이디에 맞는 회원정보를 가져와 selectVO에 담는다 - 유저정보가없거나(selectVO == null) , 비밀번호가 다를시 메시지와 함께 throw한다 ※pwencoder.matches(a,b) -> 입력된 비밀번호(인코딩x)과 백엔드에 저장된 비밀번호(인코딩o)를 비교하는 메서드 - 데이터가 확인되었다면 AuthVO 항목들은 set 후 리턴한다. - 컨트롤러로 돌아와서 session에 authVO를 저장한다(로그인을한다 ? 사용자정보를 계속 들고다닌다) - se..

프로젝트 2023.06.29

[해결] 이미지 업로드 시 데이터저장 오류

1. 문제발생장소 : 도서관 프로젝트 2. 문제 : 책 등록시 이미지/책정보 두가지를 백엔드에 저장해야하는데, 책정보만 저장되고 이미지는 저장되지않음 3. 문제코드 4. 문제 확인 4-1 프론트 4-2 컨트롤러 5. 문제해결 책은 한권당 사진이 하나라 List형태로 값을 저장하지않고 그냥 BookAttachVO로 컨트롤 해야했다. 관련코드들을 List > 단일변수로 수정하니 값을 잘 받아들였다. 원래 수정된 코드처럼 되어있었는데 다른 기능 만들면서 수정했더니 기존 기능이 꼬이네.. ㅠㅠㅠ

문제 및 해결 2023.06.29

[Spring Project] 도서관만들기 #2-2 회원가입(Back)

※ 실제작업순서와 포스팅순서가 다를 수 있습니다 1. sql table 생성 전화번호와 주소열을 정말 고민했는데 큰규모의 프로젝트가 아니니 우선 각각의 항목을 따로 관리하기로 했다 2. MemberVO 생성 3. MemberController 기본설정 4. 아이디 중복확인 코드 - 회원가입시 입력된 아이디에 "="이 붙어와서 split으로 나눠준 후 첫번째 배열로 재셋팅( "="를 제거하는셈) - Service에 checkIfIdIsDuplicate 실행 (중복확인) - 콘솔창으로 중복여부 확인 및 리턴 - MyBatis에서 백엔드에 저장되어있는 모든 id를 가져온 후 List에 담는다 - List에 입력된 id가 있는지 확인하여 true/false 리턴 5. 가입하기버튼 클릭시 - 입력된 회원정보들을 ..

프로젝트 2023.06.29

[Spring Project] 도서관만들기 #2-1 회원가입(Front)

※ 실제작업순서와 포스팅순서가 다를 수 있습니다 1. 회원가입 3단계 Front 작업 2. 각 단계별 스크립트 작동영상 주소입력은 Daum주소API를 적용시켜두었다(호스팅시 동작 확인) 2-1 약관동의 스크립트 function agree(){ $("#all_agree").change(function(){ if($(this).is(':checked')){ $('.agree').prop('checked',true); } else{ $('.agree').prop('checked',false); } }) $(".agree").change(function(){ if($('#agree1').is(':checked') && $('#agree2').is(':checked') && $('#agree3').is(':che..

프로젝트 2023.06.28

[Spring Project] 도서관만들기 #1 Home 페이지 Front 제작

※ 블로그포스팅과 실제 프로젝트 진행률이 일치하지않습니다. 1. Home 페이지 Front부분 제작 - 슬라이드 및 메뉴숨김/표시 , 팝업 등의 기본적인 화면표시 스크립트 작동 2. 주요기능 2-1 팝업닫기(쿠키사용) function popupCheck(){ // 각 버튼 클릭시 1 , 7일 동안 지속되는 쿠키생성 $("#select1").click(function(){ $.cookie('popup1_oneday','ok',{ expires:1, path:'/' }) $("#popup_1").hide() }) $("#select2").click(function(){ $.cookie('popup1_oneweek','ok',{ expires:7, path:'/' }) $("#popup_1").hide() }..

프로젝트 2023.06.28
728x90
반응형