2010-04-24 47 views
0

我試圖在JSP中作爲在線模擬考試來實現,但是我有一個問題要逐個得到問題,第一次得到答案,並且向我展示第一個問題和答案,但是當我再次點擊「下一個」時,它仍會向我顯示第一個問題,我想通過點擊「下一步」它會再次開始查詢。請幫幫我。 這是我的豆:如何在jsp和mysql中逐一獲取結果查詢

database.SQLSelectStatement sqlselect; 
database.SQLSelectStatement sqlselect2; 
static ResultSet questions; 
static ResultSetMetaData rsm; 
static ResultSet answers; 
public void setConnection() throws SQLException { 
    if (database.DatabaseManager.getInstance().connectionOK()) { 
     sqlselect = new database.SQLSelectStatement("question", "question", "0"); 
     sqlselect2 = new database.SQLSelectStatement("answers", "question_id", "0"); 
     questions = sqlselect.executeWithNoCondition(); 
    } 
} 
public int i=0; 
public String getQuestions() throws SQLException { 
    String result = ""; 
    rsm = questions.getMetaData(); 
    for (int i = 0; i < rsm.getColumnCount(); i++) { 
     result += "<th>" + rsm.getColumnName(i + 1) + "</th>"; 
    } 
    if (!questions.isLast()) { 
     questions.next(); 
     System.out.println(i+1); 
     result += "<tr>"; 
     result += "<td>" + questions.getInt(1) + "</td>"; 
     result += "<td>" + questions.getString(2) + "</td>"; 
     result += "</tr>"; 
     result += "<tr>"; 
     sqlselect2.setValue(String.valueOf(questions.getInt(1))); 
     answers = sqlselect2.Execute(); 

     while (answers.next()) { 
      result += "<tr> <td colspan='2'><input type='radio' name='answer' value='" + answers.getString(2) + "'> " + answers.getString(2) + "</td></tr>"; 
     } 
     result += "</tr>"; 
     answers.close(); 
    } 
    return result; 
} 

這是HTML:

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
    </head> 
    <body> 
     <h1>JSP Page</h1> 
     <jsp:useBean id="exam" class="exam.ExamQuestions"></jsp:useBean> 

     <% 
     exam.setConnection();     
     %> 
     <form method="post"> 
      <table > 

       <%=exam.getQuestions()%> 
      </table> 
      <input type="submit" name="action" value="next"/> 
     </form> 
     <% 
     String action = request.getParameter("action"); 
     if ("next".equals(action)) { 
      out.println(request.getParameter("answer")); 
     } 

     %> 
    </body> 
</html> 

回答

2

很抱歉,如果我聽起來刺耳,但有太多的毛病給定的代碼,我不知道在哪裏有開始接聽/修正。基本概念完全被誤解。你基本上需要重寫一切從一開始。

我建議你現在就把這個項目完全拋在一邊,並從those tutorials開始。一旦你有一個體面的理解它應該如何工作/融合在一起,然後根據你從這些教程學到的東西重新開始從空白開發。

要點:使用JSP頁面進行查看。使用Servlet類來控制,預處理和後處理模型/視圖。使用JSP中的HTML輸入/按鈕發送請求參數。在servlet中使用這些請求參數來相應地採取行動。使用模型對象(Javabean類)來保存數據。使用DAO類與數據庫交互並獲取/返回模型對象。在JSP中使用類似JSTL的taglib來控制頁面流。在JSP中使用EL來訪問模型數據。

祝你好運。

+0

謝謝,我想你說得對,太麻煩了。 – user261002 2010-04-25 12:19:09

+0

感謝您的指導,我將再次審查它們。 :) – user261002 2010-11-25 22:25:15

相關問題