您是否有一些示例代码可以向您展示如何从Ajax调用java方法?以下代码可以调用Java方法:
$.ajax({ type: "POST",
url: "test.java",
data: data,
success : function (data)
{ // Your return categories in data // Append list options to select2 }
});
但是在URL中我应该如何传递URL以及如何传递方法参数?
答案 0 :(得分:0)
Ajax使用http协议与服务器通信。因此,您只需编写一个servlet或jsp来处理Ajax请求。输入使用查询参数传递,servlet / jsp将其输出作为文本返回。
输出可以是您决定的任何格式。典型格式为纯文本,xml或json。就个人而言,我更喜欢传回一个javascript对象文字,可以通过eval函数进行解析。这允许我传回非常复杂的数据,其中可能包括字符串,数字,布尔值,数组和对象。但是解析输出的代码是一个简单的eval调用。
下面是一些示例代码。 ajax调用一个jsp,它将2个数字作为输入并返回它们的和,差,乘积和商。这是jsp代码:
<%@page contentType="text/plain"%>
<%
// get the input values
double val1 = 0;
double val2 = 0;
String errorMsg = "";
try {
val1 = Double.parseDouble(request.getParameter("val1"));
val2 = Double.parseDouble(request.getParameter("val2"));
} catch (Exception e) {
errorMsg = "Non-numeric input";
}
// return the javascript object literal
String result = "({";
result += " val1 : " + val1 + ",";
result += " val2 : " + val2 + ",";
result += " sum : " + (val1 + val2) + ",";
result += " difference : " + (val1 - val2) + ",";
result += " product : " + (val1 * val2) + ",";
result += " quotient : " + (val1 / val2) + ",";
result += " errorMsg : \"" + errorMsg + "\"";
result += "})";
out.println(result);
%>
这是一个javascript函数,它对上面的jsp进行ajax调用并处理输出。
function calculate(value1, value2) {
var dataObj = {val1 : value1, val2 : value2};
$.ajax({
url : 'calculator.jsp',
dataType : 'text',
data : dataObj,
cache : false, // guarantees jsp is always called
success: function(data) {
var result = eval(data);
var msg;
if (result.errorMsg != '') {
msg = result.errorMsg;
} else {
msg = result.val1 + " + " + result.val2 + " = " + result.sum + '\n';
msg += result.val1 + " - " + result.val2 + " = " + result.difference + '\n';
msg += result.val1 + " * " + result.val2 + " = " + result.product + '\n';
msg += result.val1 + " / " + result.val2 + " = " + result.quotient;
}
alert(msg);
}
});
}