Aufruf von einem Servlet mit Dojo und Button stylen

alexandre

Grünschnabel
Hi,

ich habe eine JSP-Datei mit Dojo-Code und möchte Daten an ein Servlet senden. Das funktioniert aber nicht.
So sieht die abgekürzte Version der JSP-Datei aus, (habe bei der Dojo-Doku abgeguckt):

Code:
<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE HTML>
<html lang="de">
	<head>
		
		<link rel="stylesheet" href="style.css" media="screen">
		<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.9.1/dijit/themes/claro/claro.css" media="screen">
	</head>
	<body class="claro">
					
					<div id="sqlOpt">
						<form id="sqlOptForm">
							<input type="hidden" name="tool" value="sqlopt">
								
							<div id="option">
								<div class="formular_titel">Option:</div>
								<select name="abfrage">
									<option value="0">Auswahl 1</option>
									<option value="1">Auswahl 2</option>
								</select>
							</div>
					
						</form>
						<div id="ausfuehrenButton" class="button_stats"><a href="#" title="Ausf&uuml;hren" onclick="document.getElementById('sqlOptForm').submit();">Ausf&uuml;hren</a></div>
					
					</div>
<div id="statsDiagramm"></div>
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.9.1/dojo/dojo.js"></script> 
		<script>
			require(["dojo/dom", "dojo/on", "dojo/request", "dojo/dom-form"],
				function(dom, on, request, domForm){

					var form = dom.byId('sqlOptForm');

					on(form, "submit", function(evt){

					evt.stopPropagation();
					evt.preventDefault();

						request.post("StatsAnzeigenSQLOPT", {
							data: domForm.toObject("sqlOptForm"),
							timeout: 2000

						}).then(function(response){
							dom.byId('statsDiagramm').innerHTML = response;
						});
					});
				}
			);
		</script>
		
		
	</body>
</html>

Der Button zur Übergabe der Daten an das Servlet, der kein Button ist sondern ein Link, ist außerhalb des Formulares. So wurde immer auf der Web-Site gemacht, aber ohne Dojo. Ich habe auch versucht, mit einem "normalen" Button innerhalb des Formulares, aber es funktioniert auch nicht. Warum werden die Daten nicht übertragen?

Wenn ich einen richtigen Button verwenden muss, muss er dann so aussehen:

Code:
.button_stats a { 
	position: absolute;
	top: 150px; 
	left: 650px;
	display: block; 
	background-color: #0F3764; 
	color: #FFFFFF; 
	font-size: 8pt; 
	text-align:center; 
	text-decoration: none;
	line-height: 20pt; 
	padding: 0 10px 0 10px; 
	/*border-right: 1px solid #fff; */
	width:135px; 
	/* Runde Kante des Buttons*/
	-moz-border-radius: 20px;
    -webkit-border-radius: 20px;
    -khtml-border-radius: 20px;
    border-radius: 20px;
}

Wie kann der Style eines Buttons verändert werden? Wahrscheilich müsste ich die CSS-Datei von Dojo ändern.

Klein Servlet zu testen:

Code:
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class StatsAnzeigenSQLOPT extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public StatsAnzeigenSQLOPT() {
        super();
        
    }

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String abfrage = request.getParameter("abfrage")	
						response.setContentType("text/html"); 
						response.setCharacterEncoding("UTF-8");
						response.getWriter().write(abfrage);
				        response.getWriter().flush();
				        response.getWriter().close();
      }
}

Ich hoffe, dass mir jemand helfen kann.

Vielen Dank im Voraus.

Gruß

Alex
 
Zuletzt bearbeitet:
Zurück