我有一个包含表和值的数据库。我想获取该数据并在jsp页面中显示它。不想在jsp页面中编写查询,单独编写java类,创建java对象值,然后在jsp中的select字段中显示它。请帮帮我......
这是我的java类 P
ublic class EmpBean {
public java.util.List dataList(){
ArrayList list=new ArrayList();
try{
Class.forName("driver");
Connection con = DriverManager.getConnection("url", "user", "pwd");
Statement st=con.createStatement();
System.out.println("hiiiii");
ResultSet rs=st.executeQuery("select * from employee");
while(rs.next()){
list.add(rs.getString("name"));
list.add(rs.getString("address"));
list.add(rs.getString("contactNo"));
list.add(rs.getString("email"));
}
System.out.println(rs.getString("contactNo"));
}
catch(Exception e){}
return list;
}
}
//and my jsp file
<%@page language="java" import="java.util.*" %>
<html>
<body>
<table border="1" width="303">
<tr>
<td width="119"><b>Name</b></td>
</tr>
<%Iterator itr;%>
<%EmpBean p = new EmpBean();
List list= (List) p.dataList(); %>
for (itr=list.iterator(); itr.hasNext(); ){
%>
<tr>
<select name="" id="" style="width: 150px;"">
<option value="-1"><%=itr.next()%></option>
</select>
</tr>
<%}%>
</table>
</body>
</html>
答案 0 :(得分:4)
我认为你应该试试这个
public class EmpBean {
public java.util.List dataList(){
ArrayList list=new ArrayList();
try{
Class.forName("driver");
Connection con = DriverManager.getConnection("url", "user", "pwd");
Statement st=con.createStatement();
System.out.println("hiiiii");
ResultSet rs=st.executeQuery("select * from employee");
while(rs.next()){
list.add(rs.getString("name"));
list.add(rs.getString("address"));
list.add(rs.getString("contactNo"));
list.add(rs.getString("email"));
}
System.out.println(rs.getString("contactNo"));
}
catch(Exception e){}
return list;
}
}
假设这个类工作正常,它返回带有一些值的列表
现在在你的jsp页面上
<%@page language="java" import="java.util.*" %>
<html>
<body>
<table border="1" width="303">
<tr>
<td width="119"><b>Name</b></td>
</tr>
<%
ArrayList list;
EmpBean emp = new EmpBean();
list = emp.dataList();
ArrayList li = (ArrayList) li.get(0);
%>
<tr>
<select name="" id="" style="width: 150px;"">
<option value="-1"><%=li.get(1)%></option>
</select>
</tr>
</table>
</body>
</html>
只是检查一下这个代码...可能会发生这样的提取值可能是错误的,只需通过更改列表索引来检查值,如果你可以用try catch包围整个scriptlet,那么如果发生异常就很容易找到bug ...祝你好运,不要担心,如果它不起作用我将给你样本代码,以确保我使用这个代码我的项目
答案 1 :(得分:2)
假设您的String username = String.valueOf(connect.getTasks(mysql));并且您想显示用户名然后将其存储在页面上下文中作为pageContext.setAttribute(&#34; username&#34;,username)
然后在任何地方显示或只是使用 &LT;%=将String.valueOf(connect.getTasks(MySQL的)GT;
如果我让你困惑,我没有得到你的问题而道歉 甚至更多...
玫瑰
答案 2 :(得分:1)
在Java类中,您可以创建连接并执行查询并将其存储在ArrayList中。将列表设置为会话的setAttribute函数。然后可以使用sendRedirect()方法将其重定向到jsp页面。
在实现之前,请查看此链接中的JSP核心标记http://www.tutorialspoint.com/jsp/jsp_standard_tag_library.html。
但在此之前,您可以粘贴正在执行的代码块。
答案 3 :(得分:0)
听起来你要Hibernate。
这将为您的数据库创建普通的旧Java对象。需要一些时间来适应,但这正是你所要求的。