JSP JavaScript SQL Update

Br4ve

Bekanntes Mitglied
Hallo,
ich habe ein Problem mit meinem JSP-Code, bzw. mit der Übergabe von bestimmten Attributwerten an eine Java-Funktion aus einer JSP raus.

folgender Code:
Java:
	fsckbutton="<form action=\"error.jsp?\">" +
						"<td class=\"tdsmall\" title=\"Set process to Finished&Checked\">" +
						"<input type=\"submit\" name=\"fus\" class=\"submitbtn2\" onClick=\"return confirmSubmit2("+arlst.get(0)+","+arlst.get(8)+","+cmd+")\" value=\"Finished & .chk.\">" +
						"<input type=\"hidden\" name=\"psid\" value="+arlst.get(8)+">" +
						"<input type=\"hidden\" name=\"pid\" value="+pid+"></td></form>";

Diese Variable lese ich an andrer Stelle in meine Jsp ein. Ob die hidden attribute überhaupt nötig sind weiß ich nicht. Die form action hab ich einfach auf die gleiche Seite gelenkt.
Die Javascriptfunktion ist folgende:

Code:
function confirmSubmit2(test)

{
var agree=confirm("You have to check this values in pcontrol!\\n\\nJobid = "+
confirmSubmit2.arguments[0]+"\\nProcessstep= "+
confirmSubmit2.arguments[1]+"\\nToolname= "+
confirmSubmit2.arguments[2]+"\\n\\nAre you absolutely sure that you want to continue?");

if (agree)
        return true ;
else
        return false ;
}

Also eigentlich nichts spektakuläres. Ich will jetzt das wenn man auf den Button drückt diese Javafunktion ausgeführt wird:
Java:
public static void fus(String db, String psid, String pid){
	PreparedStatement pstmt;
	Connection con = datenbankZugriff.dbverbindung.getConnection(db);
	
	
	
	try {
		pstmt = con.prepareStatement("UPDATE processstep SET status = ? WHERE  psid = ? UPDATE " +
				"processinstance SET status = ? WHERE  pinid = (SELECT processinstance.pinid FROM " +
				"processinstance, processstep WHERE processstep.psid = ? AND processstep.pinid = " +
				"processinstance.pinid); UPDATE process SET status = ? WHERE  pid = ? ");
		
		pstmt.setString(1, "8");
		pstmt.setString(2, psid);
		pstmt.setString(3, "7");
		pstmt.setString(4, psid);
		pstmt.setString(5, "8");
		pstmt.setString(6, pid);
		
		con.close();
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}
Also ein Datenbankupdate ausgeführt wird. Irgendwie habe ich jedoch keine Idee wie ich quasi dem HTML-Code sage er soll die Funktion ausführen? Geht das überhaupt?
 
N

nillehammer

Gast
Irgendwie habe ich jedoch keine Idee wie ich quasi dem HTML-Code sage er soll die Funktion ausführen? Geht das überhaupt?
Ja, durch das Form-Submit erzeugst Du einen Request an den Webserver. Dieser wird an die im action-Attribut genannte URL geschickt. Das ist bei Dir "error.jsp?". D.h. error.jsp muss jetzt irgendwie Code enthalten, um diesen Request zu verarbeiten. Diesen hat sie wohl wahrscheinlich nicht und sollte es auch nicht haben. Normalerweise schreibt man sich ein Servlet für die Verarbeitung von Posts. Dort implementiert man die doPost-Methode. In dieser setzt Du dann Deine Query ab. Je nach Query-Result redirectest (wichtig, redirect nicht forward) Du dann auf eine error oder success-Seite.

Aus dem "?" am Ende Deines action-Attributes schließe ich, dass Du Dir gerne einen Get-Request zusammenbasteln willst. Das geht, aber lass es! Man macht das so nicht. Gerade bei Requests, die Datenänderungen auf dem Server auslösen, nimmt man POST.
 
Zuletzt bearbeitet von einem Moderator:

Br4ve

Bekanntes Mitglied
Kann ich nicht irgendwie auf die selbe Jsp verweisen, also error.jsp und bevor die erstellt wird iwie sagen falls Attribut XY = true führe aus und dann das ganz normal per TagHandler machen? ???:L
Wenn auch nicht sonderlich elegant...

EDIT: Oder die Funktion einfach dann am Anfang der JSP direkt aufrufen, anstatt eines HAndleraufrufs...
 
Zuletzt bearbeitet:
N

nillehammer

Gast
EDIT: Oder die Funktion einfach dann am Anfang der JSP direkt aufrufen, anstatt eines HAndleraufrufs...
Klar, mit in die JSP eingebettetem Java-Code kannst du Dir Deine Hilfsklasse importieren, die Daten aus dem Request rauspulen und mit den Daten die Methode
Code:
fus
aufrufen. Ich habe hier keine Laufzeitumgebung für JSPs, deswegen nur ein paar Stichpunkte statt lauffähigen Codes:
-
Code:
<%@ page import="package1.myClass1,package2.myClass2,....,packageN.myClassN" %>
- An die Daten des Requests kommst Du direkt ran mit request.getAttribute("NameDesAttributs")

P.S. Hier findest Du eine Auflistung der Objekte, die implizit in jeder JSP direkt zugreifbar sind: JavaServer Page Implicit Objects
 

Br4ve

Bekanntes Mitglied
Funktioniert so weit blos bekomme ich jetzt eine: java.sql.SQLException: ORA-00933: SQL command not properly ended . Was wohl bedeutet meine SQL Anfrage ist fehlerhaft, untersuche den Ausdruck jetzt schon länger doch kann kein Fehler entdecken...
 
N

nillehammer

Gast
- Habs jetzt nicht genau Analysiert, aber wenn Du Strings als Parameter übergibst, solltest Du sie im SQL-Statement in einfache Hochkommas (') setzen. Das sehe ich nirgends.

- Außerdem versuchst Du zwei Statements abzusetzen. Könnte sein, dass er sich da beschwert.

- Und Subselects werden auch nicht von jedem DBMS unterstützt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Javascript, Nodejs, Express Web Tier 0
R JavaScript für Java Enterprise Entwickler Web Tier 1
D JSF Einbindung von Javascript Web Tier 1
J Session Servlet - JavaScript Web Tier 6
M JSP und JavaScript Kommunikation in MVC Pattern Web Tier 1
E Kann man ein Formular in JSP auch per Tastendruck ohne Javascript-Verwendung abschicken? Web Tier 2
A JSF Rücksicht auf nicht eingeschaltetes JavaScript nehmen Web Tier 2
V Mittels JavaScript Methode aufrufen Web Tier 23
A JSON von JavaScript an Servlet Web Tier 9
K JSP String[] Array nach Javascript Web Tier 4
C JSF Datenaustausch JSF zu Javascript Web Tier 12
J Facelets javascript compiler problem Web Tier 3
C JSON-Antwort an Javascript geht nicht Web Tier 7
J JSF JavaScript Probleme zwischen Tomahawk und Tiles!? Web Tier 2
S Per JavaScript Java ansteuern - Welche Technik? Web Tier 2
F selektieren mit javascript Web Tier 9
S Jsp: javascript und javamethode aufrufen Web Tier 17
H Probleme beim Aufrufen von Java- oder Servlet-Methoden aus Javascript Web Tier 2
H <form:input > javascript Web Tier 2
M html + jquery(javascript-framework): elegantes und flexibles Formulardesign Web Tier 5
J Servlet soll XML ausgeben und Javascript soll dieses einlesen Web Tier 3
F Meinungsumfrage Struts / Javascript Web Tier 3
J Managed bean und javascript kommunikation (JSF 2) Web Tier 2
2 JavaScript Status erkennen? Web Tier 3
Schandro JSP soll dynamische Anzahl an Parametern einer JavaScript-Function erzeugen Web Tier 8
V Eigene JavaScript und JSF (a4j) Web Tier 3
S JavaScript-Funktion aufrufen mit a4j-support?? Web Tier 3
J JavaScript-Code aus Applet ausführen? Web Tier 4
pusteblume JavaScript mit Struts auslesen? Web Tier 3
T Ajax / Javascript Plugin für Eclipse Web Tier 1
G wert für hiddenfield per javascript setzten Web Tier 4
D Tapestry :: JavaScript - Libs import Web Tier 2
B JavaScript und JSF - Diashow Web Tier 9
S Update von ungerenderten p:column innerhalb von p:panelGrid Web Tier 0
T JSF Primefaces: DataTable Ajax Update - Weiterleitung von anderer Seite Web Tier 11
J Nach SVN-Update alle Beans resolved to null Web Tier 3
B Cannot add or update a child row - javax.persistence.OneToOne Web Tier 13
I AJAX update Web Tier 2
F nach Update auf RichFaces 3.2.0 Fehlermeldungen Web Tier 5

Ähnliche Java Themen

Neue Themen


Oben