我的jsp页面中有一个表单,单击ok按钮时我必须捕获POST变量并打印它们。
我认为我的解决方案是Ajax,但我无法得到它。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html"; charset="ISO-8859-1">
<title>Ejemplo de carga de datos</title>
<script src="/Scripts/jquery-1.9.1.js"></script>
<script>
$(function(){
$(document).ready(function () {
$('input[type="submit"]').click(function (event) {
var url = "datos.jsp"; // El script a dónde se realizará la petición.
$.ajax({
type: "POST",
url: url,
data: $("#form").serialize(), // Adjuntar los campos del formulario enviado.
success: function(data)
{
}
});
});
});
});
</script>
</head>
<body>
<form name="form" id="form" method="post" enctype="multipart/form-data" >
<textarea cols=50 rows=10 name="texto" id="texto"></textarea>
<input type="submit" name="submit" value="Enviar datos" />
</form>
</body>
</html>
和datos.jsp:
<%
String texto = request.getParameter(texto);
System.out.println(texto)
%>
但它不起作用 我该怎么办?
我添加@Aleksey Bykov的消息。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html"; charset="ISO-8859-1">
<title>Ejemplo de carga de datos</title>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script>
$(function(){
$(document).ready(function () {
$('input[type="submit"]').click(function (event) {
var textoVar = $('#texto').val();
alert(textoVar);
$.ajax({
url: 'page.jsp',
type: 'POST',
dataType: 'json',
data: {
texto: textoVar
},
success: function (data) {
//
},
failure: function (data) {
//
}
});
});
});
});
</script>
</head>
<body>
<span>Sent via AJAX: <b><c:out value="${param.texto}" /></b></span>
<form name="form" id="form" method="post" enctype="multipart/form-data" >
<textarea cols=50 rows=10 name="texto" id="texto"></textarea>
<input type="submit" name="submit" value="Enviar datos" />
</form>
</body>
它总是打印$ {param.texto}(此行不是值),即使没有发送表单也是如此。
答案 0 :(得分:0)
你必须使用Javascript吗?这可以通过向表单添加一个动作来跳过所有ajax来完成。
<form name="form" id="form" method="post" action="datos.jsp" >
<textarea cols=50 rows=10 name="texto" id="texto"></textarea>
<input type="submit" name="submit" value="Enviar datos" />
</form>
答案 1 :(得分:0)
您可以使用JSTL获取texto参数的值:
<c:out value="${param.texto}" />
完整示例 - 单击提交按钮后,您将在textarea顶部看到您输入的文本。
<script>
$("#submit").click(function() {
var textoVar = $('#texto').val();
$.ajax({
url: 'YourJspHere',
type: 'POST',
dataType: 'json',
data: {
texto: textoVar
},
success: function (data) {
//
},
failure: function (data) {
//
}
});
});
</script>
<span>Sent via AJAX: <b><c:out value="${param.texto}" /></b></span>
<form name="form" id="form" method="post">
<textarea cols=50 rows=10 name="texto" id="texto"></textarea>
<input type="submit" name="submit" value="Enviar datos" />
</form>
发送前:
发送后: