[英]Trying to fetch results from mySQL database and display it in a jsp file
使用 MVC model 嘗試從 mySQL 數據庫中獲取。 該代碼嘗試查詢db並將結果放入and數組以將其傳遞給controller。然后jsp頁面可以調用它。 目前,即使它可以編譯,我也沒有顯示結果
看法
public class ViewQA {
public static void main(String category, String questions, String answers) {
// TODO Auto-generated constructor stub
}
public static List<ViewQA> listData() throws SQLException, ClassNotFoundException {
List<ViewQA> listData = new ArrayList<>();
try (java.sql.Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/examgenappschema",
"EXadmin", "abc123");) {
PreparedStatement select = null;
String queryString = ("SELECT category, questions, answers FROM examgen");
select = conn.prepareStatement(queryString);
ResultSet rs = select.getResultSet();
while (rs.next()) {
rs.getString("category");
rs.getString("questions");
rs.getString("answers");
ViewQA results = new ViewQA();
listData.add(results);
}
}
return listData;
}
}
Controller
@Controller
public class ExamGenController {
@RequestMapping(value = "/examgen", method = RequestMethod.GET)
public String DataArray(@ModelAttribute("listData") ViewQA listData, ModelMap model)
throws ClassNotFoundException, SQLException {
return "examgen";
}}
jsp 頁
<!DOCTYPE html>
<html>
<body>
<center>
<h1>List of Questions and Answers</h1>
</center>
<div align="center">
<table border="1" cellpadding="3">
<tr>
<th>category</th>
<th>questions</th>
<th>answers</th>
</tr><c:forEach var="listData" items="${DataArray}">
<div class="grid-item4"> ${DataArray.category} </div>
<div class="grid-item4"> ${DataArray.questions} </div>
<div class="grid-item4"> ${DataArray.answers} </div>
</c:forEach>
</table>
</div>
</body>
</html>
您忘記將查詢結果添加到ViewQA
。 您將空白 ViewQA object 添加到列表中。
您正在使用 var 但未在代碼中使用它,請嘗試這種方式。
<c:forEach var="listData" items="${DataArray}">
<div class="grid-item4"> ${listData.category} </div>
<div class="grid-item4"> ${listData.questions} </div>
<div class="grid-item4"> ${listData.answers} </div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.