我的index.html
有一定的视图,我希望通过调用一个使用Web服务并检索数据的java方法来更新此视图(不重定向或重新加载页面)。我想在index.html
中显示数据。我尝试使用servlet,但它重定向到另一个url,这不是我想要做的。
有没有办法在我的index.html
中调用java或显示java类的属性?
答案 0 :(得分:0)
我会使用jquery并将ajax调用回服务器。 ajax调用完成后,您可以使用javascript更新index.html文件,而不必重新加载页面。
答案 1 :(得分:0)
您可以使用servlet,但必须使用Ajax对servlet进行异步调用,而无需重新加载整个页面。
$.ajax({
type:"post",
url: "redirector?operacion=515&id_orden="+id_orden+"&id_acto="+id_acto,
dataType: "text",
success: function(response){
//Do the stuffs you need with the response here.
},
error: function(response,error){
console.log(response);
console.log(error);
}
});
这是使用jquery调用ajax的示例,其中“redirector”是我的servlet的名称,在我的servlet上这是我的代码:
case 515:
PrintWriter writer = response.getWriter();
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
try {
Integer id_acto = Integer.parseInt(request.getParameter("id_acto"));
String resultado = consultasBBDD.consultarNivelesPorActo(id_acto);
writer.print(resultado);
} catch (Exception e) {
System.out.println("Error recuperando niveles de exigencia");
}
writer.flush();
writer.close();
break;
在ajax调用的dataType
属性上,您必须指定响应的类型。还要记住,当你进行ajax调用时,你的servlet上不能request.getRequestDispatcher(urlToGo);
。
希望这有帮助,对不起我可怕的英语!
答案 2 :(得分:0)
一种方法是将Java功能公开为REST服务。
泽西岛REST终点
MT4
<强> EmployeDTO.java 强>
@Path("/rest/emp/")
public class EmployeeService {
@GET
@Path("/{param}")
public EmployeDTO getMsg(@PathParam("param") String id) {
return getEmployeeDetails(id);
}
}
<强>的index.html 强>
String name;
String id;
String address;
//getters and setters
<强> employee.js 强>
<!DOCTYPE html>
<html>
<head>
<title>Sample Page</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="employee.js"></script>
</head>
<body>
<div>
<p id="eid">The ID is: </p>
<p id="eName">The Employee Name: </p>
<p id="eAddress">The Employee Address:</p>
</div>
</body>
</html>