해결 templete 파일 제거 or jsp와 같은이름의 html이 있는지 확인
Spring Boot에서 내장된 Tomcat을 사용 하는 경우 JSP 를 처리하는 서블릿을 추가하지 않아 발생하는 것으로 의존성(dependency)을 추가해주면 된다.
출처: https://haenny.tistory.com/299 [Haenny:티스토리]
-spring boot + jpa + h2 사용시 에러 발생
-해결 domain안에 order, group과 같은 예약어가 있으면 테이블이 생성할 수 없어 에러가 발생된다고 합니다.그래서 아래와 같이 하이버네이트의 globally_quoted_identifiers를 활성화하였습니다.
해결방법
com.mysql.jdbc.Driver가 옛날 버전이기 때문에
com.mysql.cj.jdbc.Driver로 바꿔달라는 내용
jsp 쪽에서 form 액션에 메서드를 명시해야 스프링에서 GetMapping,PostMapping... 사용가능
아니면 다 RequestMapping으로 해야됨
controller랑 통산하려면 form action 사용!! >버튼은 input sumit으로//버튼으로 하면 안됨
메서드 필요 없으면 링크연결 그냥 사용
컨트롤러에서 바로 데이터 뿌려주려면 model/modelandview 사용
jsp 쪽에서 표현될 값이 없어도 오류 발생
${}
LocalDatetime 표시 방법
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 선언 후 <small><fmt:parseDate value="${board.modifiedAt}" pattern = "yyyy-MM-dd'T'HH:mm" type="both"/> <fmt:formatDate pattern = "dd.MM.yyyy HH:mm" value="${parseDateTime}"/></small>
jsp안에 자바스크립트 사용법
<script type="text/javascript"> alert("아이디가 틀렸습니다."); history.go(-1); </script>
name에 변수 이름만 잘 넣어주면 객체든, 그냥 파라미터든 잘감
에러페이지
server.error.whitelabel.enabled=false 스프링 부트에서 제공하는 에러페이지 false로 하기
에러페이지로 지정할 곳
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true"%>
에러나는 곳
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="error.jsp"%>
redirect시 Model은 전달 안됨
따라서@PostMapping("/insertComment") public String insertComment(Comment comment, @RequestParam("boardId") Long boardId, RedirectAttributes redirectAttributes) { commentService.saveComment(comment.getReply(), comment.getReplyWriter(), boardId); redirectAttributes.addAttribute("id",boardId); return "redirect:/getDetail";
이런식으로 쓰면 url 파라미터 값으로 데이터가 보내짐
~/getDetail?id=1