전체 글

전체 글

    2020.05.01 미니 프로젝트(7) (글 수정하기, 글 삭제하기)

    2020.05.01 미니 프로젝트(7) (글 수정하기, 글 삭제하기)

    modify.jsp를 form태그로 변경하였고 BoardController의 /modify 도 코드를 추가하였다. content_idx 와 content_board_idx를 hidden 으로 넣어주었고, pro 로 post로 보낸다. 수정을 했는데 유효성 검사에 걸려서 modify 가 다시 켜지면 저 bean 에는 content_file이 없어서 hidden 으로 숨겨서 넣어주었다. update 문 dao service 이고 saveUploadFile은 파일 크기가 0 이상이면 있다고 간주하고 저장하고 이름을 리턴해준다. modify_success 는 다음과 같이 금방 수정한 글을 읽을 수 있게끔 한다. 위에는 BoardController의 delete mapping, 2는 mapper 3은 delete..

    2020.04.30 미니 프로젝트(6) (게시판 구분, 글 등록, 페이지 구성, 수정/삭제 권한 설정,

    2020.04.30 미니 프로젝트(6) (게시판 구분, 글 등록, 페이지 구성, 수정/삭제 권한 설정,

    게시판에 들어갔을 때에 게시판을 구분해주기 위해서 board_info_idx를 사용한다. 그 화면에서 글쓰기를 눌렀을 때에 board/write 만 나오게되는데 나중에 글쓰기 기능을 할 때에 이 글쓰기가 어떤 게시판에서 작성된 게시글인지 알아야 하기 때문에 write까지 parameter가 전달될 수 있도록 세팅을 하려한다. boardcontroller /main 에서 requestparam 으로 들고와서 모델에 넣어준다. 그리고 board 폴더의 main.jsp 에서 write로 보내주면서 board_info_idx 값을 뒤에 덧붙여서 보내준다. 이제 write에서도 requestparam 으로 받고 빈에 세팅해주고 board/write.jsp 호출한다. 다음과 같이 form 태그로 바꿔주고 write..

    2020.04.29 미니 프로젝트(5) (정보수정)

    2020.04.29 미니 프로젝트(5) (정보수정)

    로그인 후에 수정하기를 눌렀을 때에 사용자에 따라 이름과 아이디가 박혀있게끔 만들고자 usermapper에서 다음과 같이 idx 값을 이용해 id와 name을 불러왔다. dao파일 userService의 getModifyUserInfo. userDao로 현재 로그인된 객체 loginUserBean 의 idx값을 보내서 name과 id가 담긴 빈을 빼오고 그것을 modifyUserBean에 set으로 값들을 담아준다. 그리고 modify jsp로 고고 여기서 readonly 부분은 원래 disabled로 수정이 불가능하게끔 되어있었는데 disabled는 서버로 그 값을 보내지를 않는다. 그래서 만약 disabled로 했다면 submit를 누르게 되면 modify_pro를 요청하게되는데 disabled 가 ..

    2020.04.28 미니 프로젝트(4) (로그인 처리, 로그인 확인 처리, 상단 메뉴 처리)

    2020.04.28 미니 프로젝트(4) (로그인 처리, 로그인 확인 처리, 상단 메뉴 처리)

    스프링 작업 프로젝트의 설정과 관련된 bean은 ServletAppContext.java 에 데이터를 저장하거나 관리하는 목적은 RootAppContext.java에 적어준다. 로그인 여부 확인을 위해 UserBean 에 private boolean userLogin; 다음과 같이 추가한다. 그리고 rootappcontext에 bean을 설정해 둔다. 이 빈은 여러곳에서 많이 쓰일 예정이기 때문에 구별을 하기위해서 이름을 설정해 두었다. 폼태그로 다 바꿔주었다. modelAttribute는 여기서만 잠시 사용할 bean이기 때문에 간단하게 tempLoginUserBean으로 정해주었다. 그리고 UserController 에 getmapping /login 부분에 @ModelAttribute("tempLo..

    2020.04.27 미니 프로젝트(3) (유효성 검사, 아이디 중복 확인 처리, 저장처리)

    2020.04.27 미니 프로젝트(3) (유효성 검사, 아이디 중복 확인 처리, 저장처리)

    label/input/button 등을 form 태그로 변경해 주었고 form:errors 도 추가해 주었다. style 값을 통해 빨간색 글씨로 나오게끔 하였다. 위에서 action 이 user/join_pro 이기에 PostMapping 을 연결해 주었다. 유효성 검사가 목적이기 때문에 Valid 를 해주었고, jsp에서 modelAttribute 값에 맞게 joinUserBean으로 이름을 정해주었다. BindingResult도 해주었다. 밑의 IniBInder는 내가 에러메세지를 커스텀 할 때에 UserController에서 사용하기 때문에 선언해주었다. 검사는 다음과 같은 값으로 해주었다. 커스텀을 위해 UserValidator를 만들어 주었다. 에러 메서지 프로퍼티 를 메세지처리하여 다음과 같..

    2020.04.26 - 미니프로젝트(2) (상단 메뉴 db 가져와서 구성하기)

    2020.04.26 - 미니프로젝트(2) (상단 메뉴 db 가져와서 구성하기)

    상단메뉴에 게시판 이름들을 데이터베이스 정보를 가져와서 그 부분을 매꾸도록 했다. 먼저 db에 다음과 같이 board_info_table 를 만들어 놓았다. 이를 가져오기 위해 mapper 패키지와 TopMenuMapper.class 를 만들었다. ServletAppContext.java에 등록은 덤 dao에서 이 mapper를 이용해 getTopMenuList() 를 리스트안에 저장해 두었고 그 리스트를 리턴했다. TopMenuService 에서 dao의 리스트를 받아와서 리스트를 다시 리턴해준다. 패키지 만드는 것은 당연 이 topmenu는 모든 곳에서 쓰이기 때문에 interceptor 의 prehandle 을 통해 미리 적용을 해준다. interceptor 도 ServletAppContext.ja..

    2020.04.24 - 미니프로젝트(1) (틀 구성하고 페이지 연결하기)

    2020.04.24 - 미니프로젝트(1) (틀 구성하고 페이지 연결하기)

    Spring Framework 와 MVC 를 이용하여 미니 프로젝트를 시작했다. HTML 은 외부 다른 HTML 을 구해왔고 이를 jsp 로 변환하는 작업을 하였다. 기본적인 구조는 지금까지는 TestController 에서 다 처리를 해주었지만 이제는 controller, service, dao 따로 구분을 하고 controller 또한 내부적으로 여러갈래로 나누기로 했다. view 또한 쓰임새에 따라 폴더를 만들고 나누기로 하였다. 최종 결과물은 게시판인데, 이제 공통적인 html 부분의 jsp 는 따로 빼서 간단하게 처리를 하였다. 다음과 같은데, 맨 위에 Bepoz 와 게시판 이름들 그리고 맨 밑에 내려보면 싸이트의 정보 같은 란이 중복이 되기 때문에 include 폴더 안에 bottom_info..

    2020.04.22~23 - MVC(8) (예외처리, MyBatis Java, MyBatis XML, RestController)

    2020.04.22~23 - MVC(8) (예외처리, MyBatis Java, MyBatis XML, RestController)

    프로그램 실행 중 오류가 발생되면 프로그램 실행이 중단된다. 이제 웹 브라우저에 그 오류 메세지가 나타나면 사용자 입장에서 보기 좋지 않다. 그래서 오류 발생 시에 보여줄 jsp를 구성하고 이를 브라우저에 전달하게 한다. 이 처리는 Controller에서 @ExceptionHandler 메서드를 정의해 주면 오류 발생 시에 이 메서드를 자동으로 호출한다. 다음과 같이 핸들러 괄호안에 오류 내용을 적어두면 된다. 이 익셉션핸들러 어노테이션은 같은 오류이더라도 컨트롤러마다 정의를 해주어야 한다. 컨트롤러 마다 발생 가능한 예외들이 있다면 한 번만 정의해서 사용하는 것이 효율적일 것이다. 이를 위해 GlobalExceptionHandler를 구현한다. 다음과 같이 패키지 안에 만들어주고 ServletAppCo..