2020. 4. 23. 14:03ㆍ프로젝트
내가 하려는 건
"아파트 매매", "아파트 전월세" , "연립,주택 매매" ,"연립,주택 전월세" xml 을 불러오는 거였는데,
내가 가진 코드는 아파트 전월세 xml 정보 하나만 불러오는 거라서 4번 돌려줘야 되서 귀찮았다.
1번으로 바꾸기 위해 List 에 담아서 처리해주는데
nullPointer exception이 떴다
문제의 원인은 아파트 전월세 문자열 뒤에 " " 공백이 있었다..
교수님께 도움을 요청했는데
aptRent[1] 을 print 해서 값이 잘 불러와지는 지 확인하니까 해결되었다.
그리고 sqlsyntaxerror 가 뜨길래 확인해봤더니
------------------
html 은
이 에러뜨는 걸 무시하면 정상 작동이 안된다.
오늘 이거에 1시간 낭비했다..
프로젝트가 뜻대로 작동 안될떄
문제의 파일을 새거로 대체 해보고,
복사해서 부분별로 붙여넣다 보면 디버깅이 쉽다.
내가 하려는 거를 거치는 모든 변수의 값이 잘 들어갔는지
하나씩 순차적으로 print 해서 확인해볼것! -> 문제의 원인을 찾는데 수사망을 좁힐 수있다!
root = 프로젝트 폴더
response.sendredirect(root)하면
main.do 가 기본이다.
에러 내용을 잘볼것!
에러에 원인이 있다.
----
질문:
Q > a href 의 쿼리문을 꼭 한줄로 써야만 인식이 될까?
A : 여러줄로 쓰면 쿼리 중간중간에 \n로 들어가는데, html 은 \n을 " " 공백 문자 1개로 인식하기 때문이다.
문제: DB가 안넘어갔다.
이유: jsp 파일을 WebContent 에다가 넣지않았다.
controller,dto,dao를 java resources의 src 파일에 넣어야하는데 외부에 있었다.
두 조건을 아래와 같이 해결해주니까 해결되었다.
차근차근 하나씩 해결해나가자
절대 2개이상 코드해놓고 결과확인하지 말자
문제: jsp 를 분명히 수정했는데, 적용이 안되었다.
이유: 같은 파일명의 jsp 가 2개 있었는데, 사본을 고치고 원본을 실행시키고 있었다..
피드백: 같은 파일명이 2개면 사전에 없애자.
문제: Error 도 안나는데, ${list} 값도 get해오는데, for Each문에 phone 값이 null 이다.
이유: jstl taglib 를 안넣어줬었다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PhoneList</title>
</head>
<body>
<!-- jquery 로 받아서 -->
<h2>핸드폰 리스트</h2>
<form>
<table border="1">
<tr style="background-color: skyblue">
<th>모델 번호</th>
<th>모델 이름</th>
<th>가격</th>
<th>제조사명</th>
<!-- <th>삭제</th> -->
</tr>
<c:forEach items="${list }" var="phone">
<tr>
<td>${phone.num }</td>
<td><a href="PhoneView?num=${phone.num }">${phone.model }</a></td>
<td>${phone.price }</td>
<td>${phone.vendor }</td>
</tr>
</c:forEach>
</table>
</form>
</body>
</html>
무조건 구글링 보단 공식문서가 낫다