2013-08-09 1 views
0

지정된 필드를 채우는 데이터베이스에 연결하는 웹 응용 프로그램에서 작업했습니다. 그것은 기본적으로 netbeans tutorial의 편집입니다. 글쎄, 나는 이미 데이터베이스를 설정하고 모든 정보가있는 응답 페이지에 테이블을 채워서 테스트했다. 목록에서 볼 제목 중 하나를 선택할 때 index.jsp에 문제가 발생합니다. 나는 책을 선택 제목 대신 ID 번호를 사용 :내 response.jsp가 필드를 올바르게 채우지 않습니다

SELECT titlefk FROM BookList 

대신 :

SELECT id, titlefk FROM BookList 

을 드롭 다운 상자가 ID와 선택과 제목을 모두 보여줄 것 때문입니다. 책 제목을 선택하고 제출 키를 클릭하면 데이터베이스의 해당 정보가 다음 페이지에 채워집니다. 사이트의

사진 : http://imgur.com/a/kVEMN

표는 위의 데이터베이스가 연결되어 있는지 확인하는 임시 조치입니다. 데이터베이스에서 세 번째 옵션을 선택했지만 response.jsp는 첫 번째 책의 정보로 계속 채 웁니다. 내가 코드에서 누락 된 부분을 잘 모르겠지만 누군가가 올바른 방향으로 나를 가리킬 수 있기를 바랍니다. 여기

그리고

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%> 

<sql:query var="books" dataSource="jdbc/IFPBOOKLISTRT"> 
SELECT titlefk FROM BookList 
</sql:query> 

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" /> 
     <title>IFPBOOKLIST Homepage</title> 
    <link rel="stylesheet" type="text/css" href="style.css"> 
</head> 
<body> 
     <h1>Welcome to IFPBOOKLIST, My Personal Book Selection</h1> 

    <table border="0"> 
     <thead> 
      <tr> 
       <th>Here you will find my personal books to-do list</th> 
      </tr> 
     </thead> 
     <tbody> 
      <tr> 
       <td>To view details, select a book below</td> 
      </tr> 
      <tr> 
       <td><form action="response.jsp"> 
         <strong>Select a book:</strong> 
         <select name="subject_id"> 
          <c:forEach var="row" items="${books.rowsByIndex}"> 
           <c:forEach var="column" items="${row}"> 
           <option value="<c:out value="${column}"/>"><c:out value="${column}"/></option> 
           </c:forEach> 
          </c:forEach> 
         </select> 
         <input type="submit" value="submit" name="submit" /> 
        </form> 
       </td> 
      </tr> 
     </tbody> 
    </table> 


</body> 

는 당신이 놓치고있는 것은 매우 간단하다 response.jsp

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%> 

<sql:query var="bookQuery" dataSource="jdbc/IFPBOOKLISTRT"> 
    SELECT * FROM BookList,Book 
    WHERE Book.id=BookList.id 

</sql:query> 

<c:set var="bookDetails" value="${bookQuery.rows[0]}"/> 

<table border="1"> 
    <!-- column headers --> 
    <tr> 
     <c:forEach var="columnName" items="${bookQuery.columnNames}"> 
     <th><c:out value="${columnName}"/></th> 
    </c:forEach> 
</tr> 
<!-- column data --> 
<c:forEach var="row" items="${bookQuery.rowsByIndex}"> 
    <tr> 
    <c:forEach var="column" items="${row}"> 
     <td><c:out value="${column}"/></td> 
    </c:forEach> 
    </tr> 
</c:forEach> 
</table> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" /> 
     <title>${bookDetails.title}</title> 
    </head> 
    <body> 
     <table border="0"> 
    <thead> 
     <tr> 
     <th colspan="2">${bookDetails.title}</th> 
     </tr> 
     <tr> 
      <td>Edition: <a href="placeholder">${bookDetails.edition}</a></td> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td> 
       <strong>Description: </strong> 
      </td> 
      <td> 
       {placeholder} 
      </td> 
      <link rel="stylesheet" type="text/css" href="style.css"> 
     </tr> 
     <tr> 
      <td> 
       <strong>Publisher </strong> 
      </td> 
      <td> 
       ${bookDetails.publisher} 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <strong> 
        Published Date 
       </strong> 
      </td> 
      <td> 
       ${bookDetails.datePublished} 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <strong>Author </strong> 
      </td> 
      <td> 
       ${bookDetails.author} 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <strong>isbnNumber </strong> 
      </td> 
      <td> 
       <a href="placeholder">${bookDetails.isbnNumber}</a> 
       <br> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <strong>Amazon Link: </strong></td> 
      <td> 
       <a href="placeholder">${bookDetails.amazonLink}</a> 
       <br> 
      </td> 
     </tr> 
    </tbody> 
    </table> 
</body> 

+0

귀하의 답변을 봅시다.jsp – mikey

+0

아 맞아. 죄송합니다. – rtrigoso

답변

0

에게 있습니다. 이것을 쉽게 모양으로 채울 수 있어야합니다.

  • 의 index.jsp 파일의 작업은, 옵션 목록을 사용자에게 제시 그들 중 하나를 선택하도록 한 다음 response.jsp에에 선택한 옵션 을 전달하는 것입니다.
  • response.jsp의 작업은 및 에 대해 더 많은 세부 정보를 표시하는 입니다.

당신은 결코 선택한 옵션을 읽는하지있어, response.jsp에서 쿼리를 참조 실제로 모든 책을 당겨 다음 데이터베이스에 의해 반환 된 첫 번째를 선택하는 것입니다 (예를 들어, 행 [0]) :

<sql:query var="bookQuery" dataSource="jdbc/IFPBOOKLISTRT"> 
    SELECT * FROM BookList,Book 
    WHERE Book.id=BookList.id 
</sql:query> 

<c:set var="bookDetails" value="${bookQuery.rows[0]}"/> 

당신이 response.jsp에해야 할 것은 :

1) index.jsp에 의해 전달 된 subject_id 매개 변수를 읽어보십시오.

2) 선택한 책만 반환되도록 subject_id를 사용하여 bookQuery를 필터링합니다 (SQL WHERE 절을 통해). 당신이 response.jsp 아래 항목 3의 끝 부분에 가까운 모습을 취할 경우

당신의 튜토리얼로 돌아가서, 당신은 그들이 그것을 어떻게 볼 수 있습니다 :

<sql:query var="counselorQuery" dataSource="jdbc/IFPWAFCAD"> 
    SELECT * FROM Subject, Counselor 
    WHERE Counselor.counselor_id = Subject.counselor_idfk 
    AND Subject.subject_id = ? <sql:param value="${param.subject_id}"/> 
</sql:query> 

희망이 도움이!

+0

@mikey, 고마워. 나는 내가 놓친 것을 실제로 이해한다. 불행히도, 나는 물론 올바른 이름으로 마지막 줄을 추가했는데 이제는 데이터베이스 테이블조차 보여주지 않을 것입니다. 나는 ** Book ** ** 주제 ** ** ** id ** ** 주제 ** **를 변경하면서 마지막 줄을 추가했다. 필드가 전혀 채워지지 않습니다. 나는 당신에게 선거권을 줄 것이지만 나는 아직 그렇게할만한 충분한 포인트가 없습니다. – rtrigoso

+0

당신이 이드를 넘기지 않는다는 것을 기억하십시오. 대신에 'titlefk'를 전달합니다. 그래서 당신은 본질적으로 다음과 같이 말하고 있습니다 : "주제 넘버가있는 모든 책을주세요 = "subject id와 titlefk는 다른 필드이므로 일치하는 것이 없으므로 필드가 채워지지 않습니다. – mikey

+0

그래, 네가 의미하는 바를 이해하지만, 네가 그것을 보면 더 좋을 것 같아. ** Book.title = BookList.titlefk and BookList.titlefk =? ** 이것은 현재 가지고있는 것이며 아직 채워지지 않았습니다. 나는 또한 ** Book.title = BookList.titlefk과 BookList.titlefk =? rtrigoso

관련 문제