jquery - 显示来自 REST GET 响应的 HTML 页面

标签 jquery html json rest tomcat

这是我在 stackoverflow 中的第一篇文章,希望我的问题得到解答。 我对前端技术没有那么丰富的经验。所以我需要你的帮助来找到解决我的问题的方法。

我开发了一个在 Tomcat 中运行的带有 REST 服务的小型应用程序。我想做的是调用 REST GET 服务,如 http://localhost:8080/myApp/project/12345 .服务看起来像这样

@Path("/project")
public class ProjectService {

    private ProjectDAO projectDAO = new ProjectDAO();

    @GET
    @Path("{projectNumber}")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Project getProject(@PathParam("projectNumber") Integer projectNumber, 
                              @Context HttpServletResponse servletResponse) throws ApplicationException, IOException {
        servletResponse.sendRedirect("/project.html");
        return projectDAO.findProject(new Project(projectNumber));
    }

POJO 看起来像这样:

@XmlRootElement
public class Project {

    private Integer projectNumber;
    private String projectName;

    public Integer getProjectNumber() {
        return projectNumber;
    }

    @XmlElement
    public void setProjectNumber(Integer projectNumber) {
        this.projectNumber = projectNumber;
    }

    public String getProjectName() {
        return projectName;
    }

    @XmlElement
    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

我的 HTML 页面是这样的

<!DOCTYPE html> <html lang="en"> <head>
    <meta charset="UTF-8">
    <title>Display project</title>

    <script src="js/jquery-latest.js"></script>

</head>

<body> <h2 id="projectInfo"></h2> </body> </html>

这只是 HTML 页面的一小段,它包含了更多的元素。 我想要做的是在 id 为“projectInfo”的 h2 标签中显示项目信息。如您所见,我想使用 jquery。 在我的 servlet 中,我查询数据库以获取在 REST 调用中传递的 id 的项目信息并返回 JSON 响应。所有这一切都完美无缺,查询工作正常,返回响应并将其重定向到 project.html。

我想知道的:

  1. 这是重定向到 project.html 以显示项目信息的正确方法吗?
  2. 如果是,如何获取servlet返回的响应数据(Project的JSON响应)并用jquery显示在project.html的h2标签中?

还有一个提示,调用http://localhost:8080/myApp/project/12345是来自不受我控制的外部工具的第一个调用。这个工具想要做一些与项目相关的事情。因此,首先显示静态 HTML 页面不是一个选项,因为我不知道需要处理的项目编号。

感谢任何帮助!

谢谢 迈克尔

最佳答案

从您的 HTML 页面进行 AJAX 调用,如下所示。

<!DOCTYPE html> <html lang="en"> <head>
    <meta charset="UTF-8">
    <title>Display project</title>
    <script src="js/jquery-latest.js"></script>
<script>
$(document).ready(function(){
$.ajax({
        "url" : "http://localhost:8080/myApp/project/12345",
        "type" : "GET",
        "success" : function(data) {              
                var projectData= JSON.stringify(data);
                $("#projectInfo").text(projectData.projectName);
        },
        "error" : function(response,error)
        {
            console.log("ERROR: "+JSON.stringify(response));
        }
    });
});
</script>
</head>
<body> <h2 id="projectInfo"></h2> </body> </html>

希望这段代码能奏效。

关于jquery - 显示来自 REST GET 响应的 HTML 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50883526/

相关文章:

javascript - 根据选择选项隐藏和显示选择选项

html - 完美的响应圈 iFrame

html - 使用 CSS 在同一行上将文本左右对齐

javascript - 数组中的ajax json响应转换

jquery - 使用键盘控制 jQuery Easing

javascript - promise : avoid forking/splitting and chain first this then do this

javascript - Jquery单选按钮重复

html - CSS 不适用于 Django

javascript - 使用 jQuery 生成的表中的 Bootstrap 弹出窗口

json - jq 以科学记数法重新格式化小数——这可以避免吗?