프로젝트 오답노트

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>

 


무조건 구글링 보단 공식문서가 낫다