|
|
Ausgabe von Datensätze als Auswahlliste
amazone, 10.01.2010 15:37:59
Hallo,
hoffentlich kann mir jemand helfen.
Was ich möchte: Ich habe viele Datensätze im Datenbank. Die möchte ich im Browser anzeigen als eine Auswahlliste (Auswahlkompenente soll checkbox sein). Jede Zeile im Datenbank soll als eine Auswahl ausgegeben werden.
Subject.java Datei :
package exam;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Subject {
Statement st= null;
ResultSet rs = null;
Connection conn = null;
public void subjectShow(String Subjects){
try {
String driverName = "oracle.jdbc.driver.OracleDriver";
Class.forName(driverName);
String serverName = "localhost";
String portNumber = "1521";
String sid = "xe";
String url = "jdbcracle:thin:@" + serverName + ":" + portNumber + ":" + sid;
conn = DriverManager.getConnection(url, "test", "test");
st = conn.createStatement();
String sql = "select Subject from Exam";
rs = st.executeQuery(sql);
while (rs.next()) {
String rsSubject = rs.getString("Subject");
if(rsSubject != null){
System.out.println(rsSubject);
}
}
rs.close();
st.close();
conn.close();
}catch(Exception ex){
System.out.println(ex.getMessage());
}
}
}
subject.jsp Datei :
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<%@page import="java.sql.ResultSet"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
String Subjects = "";
String rsSubject1 = request.getParameter("rsSubject");
Subject subObject = new Subject();
subObject.subjectShow(Subjects);
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Exam Subjects</title>
</head>
<body>
<h1>Select Subjects for Exam</h1>
<form action="subject.jsp">
<table>
<tr>
<td>
<input type="checkbox" name="id" value="<%=rsSubject1 %>">
<%
System.out.println(rsSubject1);
%>
</td>
</tr>
</table>
</form>
</body>
</html>
Das Problem: Die jsp-Datei wird zwar fehlerfrei ausgeführt, aber die Datensätze werden nicht ausgegeben. Ich vermute, dass es an folgender Code liegt:
String rsSubject1 = request.getParameter("rsSubject");
Habe lange rumprobiert und zu keinem Ergebnis gekommen.
Vielen Dank & Gruß
amazone
Zum Antworten auf einen Beitrag müssen Sie registriert und angemeldet sein.
|
Re: Ausgabe von Datensätze als Auswahlliste
gandalf, 11.01.2010 05:04:30
Unabhängig davon, dass dein SW-Desing nicht mehr den neueren Richtlinien für Java-Webanwendungen espricht, ein paar Hinweise:
Die Signatur deiner DB-Zugriffsmethothe sollte besser
public String subjectShow() lauten.
Du willst ja was zurückgeben und nicht von der JSP an den java-Code Parameter übergeben. Strings sind übrigends immutable, so dass dein aufruf nicht funktionieren kann.
In der JSP fehlt ein import auf dein package 'exam'. Der Zugriff erfolg bei geänderter Signatur mit:
<%
exam.Subject subObject = new exam.Subject();
String result = subObject.subjectShow();
%>
Die Ausgabe in einer checkbox kann so auch nicht funktionieren:
<h1>Select Subjects for Exam</h1>
<table>
<tr>
<td>
<input type="text" name="id" value="<%= result %>">
<%
System.out.println(result);
%>
</td>
</tr>
</table>
gandalf
Zum Antworten auf einen Beitrag müssen Sie registriert und angemeldet sein.
|
Re: Ausgabe von Datensätze als Auswahlliste
amazone, 11.01.2010 17:09:44
hab es verändert, aber alle Datensätze werden nicht ausgegeben. es wird nur eine ausgegeben.
java-datei :
package exam;
import java.sql.*;
public class Subject {
public static int TEST = 0;
Statement st= null;
ResultSet rs = null;
Connection conn = null;
public String subjectShow(){
String rsSubject = "";
try {
String driverName = "oracle.jdbc.driver.OracleDriver";
Class.forName(driverName).newInstance();
String serverName = "localhost";
String portNumber = "1521";
String sid = "xe";
String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + ":" + sid;
conn = DriverManager.getConnection(url, "test", "test");
st = conn.createStatement();
String sql = "select Subject from Exam";
rs = st.executeQuery(sql);
while (rs.next()) {
rsSubject = rs.getString("Subject");
if(rsSubject != null){
System.out.println(rsSubject);
}
}
rs.close();
st.close();
conn.close();
}catch(Exception ex){
System.out.println("Unable to load the driver class!");
}
return rsSubject;
}
}
jsp-datei:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="exam.Subject" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<%@page import="java.sql.ResultSet"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
exam.Subject subObject = new exam.Subject();
String result = subObject.subjectShow();
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Exam Subjects</title>
</head>
<body>
<h1>Select Subjects for Exam</h1>
<table>
<tr>
<td>
<input type="checkbox" name="id" value="<%=result %>">
<%
out.println(result);
%>
</td>
</tr>
</table>
</body>
</html>
Danke & Gruß
amazone
Zum Antworten auf einen Beitrag müssen Sie registriert und angemeldet sein.
|
Re: Ausgabe von Datensätze als Auswahlliste
gandalf, 11.01.2010 18:05:07
Na dann stell mal deine Java-Klasse so um, dass sie zu dieser JSP passt.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="exam.Subject" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.ResultSet"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
Subject subObject = new Subject();
ArrayList<String> result = subObject.subjectShow();
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Exam Subjects</title>
</head>
<body>
<h1>Select Subjects for Exam</h1>
<table>
<%
int i = 1;
for (String item : result) {
System.out.println("item=" + item);
%>
<tr>
<td><input type="checkbox" name='id<%= i++ %>' value="<%= item %>"></td>
<td><%= item %></td>
</tr>
<%
}
%>
</table>
</body>
</html>
gandalf
Zum Antworten auf einen Beitrag müssen Sie registriert und angemeldet sein.
|
Legende: Anonymer User registrierter User sehr aktiver User
|
|
Hinweis: Auf dieser Seite liegen Links zu anderen Seiten im Internet. Für alle diese Links gilt: Wir
betonen ausdrücklich, daß wir keinerlei Einfluß auf die Gestaltung und die Inhalte der gelinkten Seiten
haben. Deshalb distanzieren wir uns hiermit ausdrücklich von allen Inhalten aller gelinkten Seiten auf
dieser Homepage und machen uns ihre Inhalte nicht zueigen. Diese Erklärung gilt für alle auf unserer
Homepage angebrachten Links
Redaktion/Betreiber von JSP-Develop übernehmen keinerlei Gewährleistung und Verantwortung für die Richtig-
und/oder Vollständigkeit von den auf den Webseiten JSP-Develop veröffentlichten Source Codes.
Die Verantwortung der Verwendung/Anwendung sowie etwaige Modifikation der hier veröffentlichten Sourcen
obliegt einzig dem Benutzer der Webseite, welche die veröffentlichten Sourcen in einer Applikation/Anwendung
einsetzt. Durch das Kopieren und/oder Benutzen der Sourcen in einer Applikation/Anwendung
bzw. etwaigen Abschriften wird dieser Rechtshinweis anerkannt.
Java, JSP, JavaServer Pages, J2EE, EJB, JDBC, JNDI, JTA, Sun, Sun Microsystems are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and in other countries.
IBM, WebSphere are trademarks or registered trademarks of International Business Machines Corporation.
Other trademarks and registered trademarks are the property of their respective owners.
|
|
|
|