我有一个名为ManagerBook.java的无状态会话java类,我有以下方法:
public int findBook(int isbn) throws SQLException, ClassNotFoundException{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(url, user, password);
String find = "SELECT * from book WHERE isbn = ?";
PreparedStatement stt = con.prepareStatement(find);
stt.setInt(1, isbn);
ResultSet rs = stt.executeQuery();
int found = 0;
if (rs.next()) {
int isbn1 = rs.getInt("isbn");
String title = rs.getString("title");
Book b1 = new Book();
b1.setIsbn(isbn1);
b1.setTitle(title);
found = 1;
}
con.close();
stt.close();
rs.close();
return found;
}
更新1 - Book.java类
package book;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Book {
private int isbn;
private String title;
@Id
public int getIsbn() {
return isbn;
}
public void setIsbn(int isbn) {
this.isbn = isbn;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
接下来,在我的JSP页面中,我想检索我在输入字段中输入的isbn数字的数据。它应该根据我在ManagerBook.java类中的sql查询显示isbn和其他详细信息。当我单击提交按钮时,它应显示带有我在输入字段中输入的ISBN号的书籍的ISBN和标题。请帮忙。如何在JSP中获取ISBN和磁贴?感谢
find.jsp
<%@page import="java.util.*, book.*" %>
<jsp:useBean id = "bm" class="book.ManagerBook" scope = "session"/>
<%
int success = 0;
Boolean submitted = Boolean.parseBoolean(request.getParameter("submitted"));
if(submitted){
int isbn = Integer.parseInt(request.getParameter("isbn"));
success = bm.findBook(isbn);
}
%>
<h1> Welcome to ABC Library</h1>
<form>
<table>
<tr>
<td> Enter Details </td>
<td><input type="text" name="isbn"></td>
<td><input type="submit" name="find" value="find"></td>
</tr>
</table>
<input type="hidden" name="submitted" value="true">
</form>
<%
if((success == 1) && (submitted)){%>
<table>
<tr>
<td colspan=2>
<h2>Book Found</h2>
</td>
</tr>
<tr>
<td><h3>ISBN</h3></td>
<td><h3>Title</h3></td>
</tr>
<tr>
<td><%=b1.getIsbn%></td>
<td><%=b1.getTitle() %></td>
</tr>
</table>
<%} else if (submitted){ %>
<h3> Book Not Found</h3>
<% } %>
更新3 - 错误在这里
<tr>
<td><%=b1.getIsbn%></td>
<td><%=b1.getTitle() %></td>
</tr>
</table>
<%} else if (submitted){ %>
<h3> Book Not Found</h3>
<% } %>
答案 0 :(得分:0)
在表单中,将操作指定为jsp本身。
<form action="find.jsp" method="GET">
因此,无论何时提交表单,它都会将其重定向到相同的jsp。 在请求对象中,将出现isbn数字,该数字将被传递给java类中定义的函数。
Refer this link for more detailed explanation.
获取isbn号码和书名使用
<%if((success == 1) && (submitted)){%>
Book Found
ISBN Number=<%=request.getparameter("isbn")%>
Book Name=<%=bm.getBookName()%><!-- getBookName() method in ManagerBook -->
<%}
else
{
%>
Book Not found
<%}%>