Im folgenden Code-Snippet gibt es die isRowInDueCauseTable
Methode (die in einer anderen Klasse ordnungsgemäß funktioniert) gibt einen booleschen Wert zurück. Aber wenn es in einer JSP-Datei verwendet wird, gibt es immer True zurück, obwohl es die isRowInDB
Variable entsprechend ändern sollte. Aber es ist immer wahr, also bekommt isRowExists
Methode immer true
als Parameter. Es scheint, wie es nur zum ersten Mal ausgeführt wird, und nie wieder auswertetJSP-Datei-Methode scheint wie nie aufgerufen wird nach dem ersten Mal ausführen
if (sAction == "newRow") {
<%
tblMgrHome = (TableManagerHome)pageEnv.get("ejb/TableManager");
tblMgr = tblMgrHome.create();
boolean isRowInDB = tblMgr.isRowInDueCauseTable(
request.getParameter("REASON"),
request.getParameter("TASK"),
request.getParameter("RESULT"),
request.getParameter("RESULT_CAUSE")
);
%>
console.log("HERE IS THE BOOLEAN: " + <%=isRowInDB%>);
isRowExists(<%=isRowInDB%>);
setMenuClick(false);
}
Und ich bin sicher, dass es auch wieder falsch geben kann, weil dieser Teil der Anwendung zu arbeiten. Was ist daran falsch?
Was ist daran falsch? Es scheint mir, dass dieser Code ausgewertet wird, wenn die Seite das erste Mal lädt, so dass es nur beim ersten Mal aufgerufen wird. Wenn dann Ihr Java-Code diesen Wert ändert, wird er nicht auf die Seite dynamisch alleine reflektiert. – quirimmo
Ich möchte, dass jedes Mal, wenn eine Schaltfläche angeklickt wird, ausgewertet wird, dann wird die Javascript-Methode, die dieses Snippet enthält, aufgerufen – dmbdnr
Es ist eine Menge, die ich nicht mache verwende JSP nicht, aber aus meinem Speicher wird JSP ausgeführt, sobald die Seite geladen ist, dann wird sie nicht mehr ausgeführt. Versuchen Sie, ein einfacheres Beispiel zu machen, und fügen Sie innerhalb dieser Methode nur einen Zähler ein, der von Java inkrementiert wird. Dann logge diesen Wert mit der Konsole. Kannst du sehen, dass der Zähler weiterläuft? oder siehst du immer den Startwert? – quirimmo