PreparedStatement: Seite zeigt nichts an

Status
Nicht offen für weitere Antworten.

donnar

Mitglied
Hallo ihr lieben,

zur Zeit möchte ich mit einem preparedStatement eine bestimmte Abfrage ausführen. Das preparedStatement (in der queryBean) ist wie folgt definiert:
Code:
public String getGericht(String idgericht){
     gericht = null;
     String query 	= "select * from GERICHTE where IDGERICHTE = ?";
     ResultSet  rs 	= null;
     try{ 
        PreparedStatement prepStatementGericht = connection.prepareStatement(query);
        prepStatementGericht.setString(1, idgericht);
        rs = prepStatementGericht.executeQuery();
        StringBuffer sb = new StringBuffer();

        while (rs.next()) {
          sb.append(rs.getString(3));
       } ...
return gericht;
}
Der Aufruf erfolgt über das ControllerServlet:
Code:
         if (doAction.equals("gerichte")){
            String gericht = request.getParameter("gericht");
	queryBean.getGericht(gericht);
	url = "/web/jsp/gerichte.jsp";
         }
Und die JSP benutzt folgende Codezeile:
Code:
<jsp:getProperty name="queryBean" property="gericht" />
Und der Aufruf der Seite erfolgt zum ersten Mal hier:
Code:
<form action="<%=request.getContextPath()%>/servlet/ControllerServlet" method="get">    
                <input type="hidden" name="doAction" value="gerichte" />
                <input type="hidden" name="gericht" value="1" />
                <input type="image" src="<%=request.getContextPath()%>/web/img/gerichte_k.png" alt="gerichte" title="gerichte"/>
            </form>
Das Problem ist jetzt, dass die Browseradresszeile zwar den richtigen Wert anzeigt: "doAction=gerichte&gericht=1", die Seite jedoch gar nichts als Inhalt überliefert. Dh. es wird nichts angezeigt.

Wo kann der Fehler liegen?
 
S

SlaterB

Gast
du hast da zwei verschiedene Dinge, zum einen die DB-Abfrage und zum anderen die JSP,

ob die DB-Anfrage funktioniert kannst du mit System.out.println() oder sonst wie einfach prüfen,
entweder das klappt alles so wie soll oder nicht, dashat nichts mit JSP zu tun,

ob deine Formulare richtig aufgerufen/ weitergeleitet werden, die korrekten Parameter zurück kommen oder was auch immer
kannst du alles mit Testdaten prüfen, das hat mit der DB nix zu tun,

-----

so, zwar keine direkte Hilfe, aber eine gewisse Klarstellung ;)
 

donnar

Mitglied
Ich konnte den Fehler nun ausfindig machen: "Cannot find any information on type 'gericht' in bean JdbcQueryBean". In dieser Bean befindet sich die oben genannte Funktion "getGericht". Das verstehe ich jetzt nicht. Es gibt doch einen getter für den String gericht. Warum greift er dann nicht darauf zu?
 
S

SlaterB

Gast
du meinst hoffentlich nicht

public String getGericht(String idgericht){
}

denn erstens ist das kein richtiger getter, ein getter darf doch keinen Parameter haben,
welcher Wert sollte da nach welchen Regeln übergeben werden?

und zweitens ist es ganz schlimm, wenn ein einem Bean irgendwo in unkontrollierten Bereichen der automatischen Verarbeitung DB-Anfragen ausgeführt werden,

Web-Programmierung ist ganz einfach:
ein Request vom User landet in einem Servlet oder einer vergleichbaren Komponente,
dort werden DB-Anfragen ausgeführt und sonstige Informationen zusammengesammelt,

diese fertig geladenen einfachen, fehlerfreien DB-losen Daten werden dann in Beans oder ähnlich an JSPs weitergeleitet


--------

edit:
ich sehe, dass du anscheinend auch im normalen Java-Code
> queryBean.getGericht(gericht);
aufrufst,
das ist schon viel besser, aber den Rückgabewert verwendest du gar nicht, was soll der Aufruf bewirken?
diesen Rückgabewert musst du nun irgendwo normal abspeichern, so dass später darauf zugegriffen wird und nicht nochmal die DB-Query ausgeführt wird

denn die Fehlermeldung bezieht sich doch auf die JSP-Verarbeitung oder?
 

donnar

Mitglied
Hallo nochmal,

das Problem ist, dass ich immer wieder an meine Grenzen stoße, da ich die Funktionsweise immer noch nicht ganz nachvollziehen kann.

Ich dachte mir, dass es so funktioniert:
Es gibt eine JSP Datei, die einen Eintrag in die Browseradresszeile vornimmt. Diese wird per ControllerServlet ausgewertet. Zum einen wird im Servlet die benötigte Seite aufgerufen (gerichte.jsp) und zum anderen die Funktion getGericht ausgeführt, die eine übermittelte Id* (aus der Adresszeile) in einem preparedStatement ausführen soll.
Zum Schluss gibt es noch in den JSPs die möglichkeit Beans aufzurufen. Dieses Bean sollte in meinem Fall das Ergebnis der ausgeführten Abfrage herauslesen.

Hab ich das nun richtig verstanden, oder bin ich noch immer auf den falschen Weg?


welcher Wert sollte da nach welchen Regeln übergeben werden? --> *


Edit: Der Rückgabewert sollte in der JSP verarbeitet werden. Aus diesem Grund die Zeile: "<jsp:getProperty name="queryBean" property="gericht" />" Leider weiß ich nicht, ob das der richtige Weg ist.
 
S

SlaterB

Gast
> zum anderen die Funktion getGericht ausgeführt, die eine übermittelte Id* (aus der Adresszeile) in einem preparedStatement ausführen soll.


wie in meinem edit im voherigen Post schon gefragt: was bringt dir die Ausführung des PreparedStatement, wenn du dir das Ergebnis nicht merkst?


> Dieses Bean sollte in meinem Fall das Ergebnis der ausgeführten Abfrage herauslesen.

wie ist das Ergebnis denn gespeichert und wie kann es abgefragt werden?
du brauchst sowas wie

getFertigesGericht() {
return this.fertigesGericht;
}

mit einer entsprechenden Variable, die irgendjemand mit
setFertigesGericht(String);
auch gesetzt hat
 

donnar

Mitglied
Super, dein Lösungsvorschlag funktioniert. Ich habe die ganze Zeit mit den getGericht gearbeitet, brauchte jedoch vorher noch ein setGericht(String).
Es lag wohl daran, dass die queryBean keinen richtigen getter hatte.

Vielen Dank. Das hilft mir so schon weiter
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Seite nur aufrufbar machen für eingeloggte User Web Tier 1
J dynamische jsf-seite programmatisch erstellen Web Tier 1
M Seite per Push neuladen Web Tier 2
P JSF Ajax aktualisiert Seite neu Web Tier 2
F JSF selectManyCheckbox Checkbox auf der rechten Seite Web Tier 3
M GWT - Externe Java Libs auf Server Seite - zB. JDBC Web Tier 6
A Aufruf eines Servlets auf einer JSP Seite funktioniert nicht Web Tier 10
J Was ist denn eine index.jsp seite ? Web Tier 5
T JSF Primefaces: DataTable Ajax Update - Weiterleitung von anderer Seite Web Tier 11
Q JSF bei Session-Timeout Weiterleitung auf spezielle Login-Seite Web Tier 15
xehpuk JSF 404 statt 500 bei nicht existenter JSF-Seite Web Tier 7
dataframe Persistenz aus JSF-Seite ansteuern Web Tier 12
K Servlet + JSP: JSP-Seite ein Array/ArrayList überliefern vom Controller-Servlet Web Tier 8
M JSF Umfangreiche Seite strukturieren Web Tier 5
L einfache JSF-Seite wird nicht angezeigt Web Tier 8
R JSF Mit Ajax ganze Seite neu laden Web Tier 2
X Seite wird mit AJAX neu geladen Web Tier 4
R Zugriff auf Session direkt auf JSF-Seite Web Tier 2
B statische Html Seite als response erhalten (Servlet) Web Tier 3
D Auf andere Seite mit GWT Web Tier 2
S HTML Seite als PDF Web Tier 6
J JSP-Seite kann nicht aufgerufen werden Web Tier 14
K Analye einer Seite (Java, JSP, ...) Web Tier 12
I Setten auf der JSF - Seite Web Tier 2
M Ton wiedergabe über jsp-Seite Web Tier 2
G Code in JSF-Seite Web Tier 7
J Hilfe: seite includieren mit IceFaces Web Tier 2
T Template für die ganze Seite Web Tier 6
I JSF Nur max 20 Datensätze anzeigen lassen, dann nächste Seite Web Tier 8
P request.getParameter("name") von Formular auf JSP-Seite leer Web Tier 5
aokai ExterneJS-JSP Seite einbinden Web Tier 2
C navigation auf einer jsp Seite Web Tier 3
F sendError geht nicht richtig, seite leer Web Tier 6
K JSF Seite mit Dateien der Endung *.jsf Web Tier 4
T Wie feststellen, ob ein Benutzer noch auf meiner Seite ist Web Tier 14
K [gelöst] JSF-Seite wird nicht angezeigt Web Tier 3
H JSF Seite wird plain angezeigt Web Tier 3
P JSP Seite verlassen Web Tier 2
M Authentifizierung über PhaseListener je nach Seite Web Tier 11
M Servlet Submit ergebniss in seite einbauen Web Tier 2
F Beim Aufruf von einer JSF Seite eine Methode ausführen Web Tier 9
M XML http request zeigt die eigene Website als response Web Tier 2
P Eclipse zeigt Errors an, die auf Tomcat nicht auftreten Web Tier 2
J Richfaces combobox zeigt Items nicht an Web Tier 4

Ähnliche Java Themen

Neue Themen


Oben