Java 重定向到JSP而不是REST调用的JSON响应

Java 重定向到JSP而不是REST调用的JSON响应,java,json,rest,jsp,Java,Json,Rest,Jsp,我正在做一项任务,创建一个简单的博客,用户可以在这里提问(发帖),答案可以作为评论给出。 凭借我对Java、REST和Jquery的有限知识,我已经设法获取了帖子列表,并将它们显示为一个表。 现在,每当用户点击任何帖子时,他都应该被重定向到另一个页面,在那里可以显示相应的问题评论。 我在Java中实现了一个REST方法,它返回JSON响应以及与传递的post_id相关的注释。 因此,每当用户单击任何帖子时,他都会被重定向到RESTURL(…/services/comments?postID=1)

我正在做一项任务,创建一个简单的博客,用户可以在这里提问(发帖),答案可以作为评论给出。 凭借我对Java、REST和Jquery的有限知识,我已经设法获取了帖子列表,并将它们显示为一个表。 现在,每当用户点击任何帖子时,他都应该被重定向到另一个页面,在那里可以显示相应的问题评论。 我在Java中实现了一个REST方法,它返回JSON响应以及与传递的post_id相关的注释。 因此,每当用户单击任何帖子时,他都会被重定向到REST
URL(…/services/comments?postID=1)
,并得到以下响应:

[
  {
    "postID": 1,
    "commentID": 8,
    "comment": "These are the answers getting added",
    "commenterID": 7,
    "commentDate": 1442671662000,
    "commentVote": 0
  }
]
下面是我为REST调用提供服务的JAVA方法:

    @GET
    @Produces({ MediaType.APPLICATION_JSON })
    public List<Comments> getUserComments(@QueryParam("postID") Integer postID) {
    Session ses = HibernateUtil.currentSession();
    ses.flush();
    List<Comments> comments = null;
    if(postID != null)
    {
        comments =  ses.createQuery("select c from Comments c where c.postID="+postID+" order by c.commentDate desc").list();
    }

    HibernateUtil.closeSession();
    return comments;
    }
@GET
@产生({MediaType.APPLICATION_JSON})
公共列表getUserComments(@QueryParam(“postID”)整数postID){
Session ses=HibernateUtil.currentSession();
ses.flush();
列表注释=null;
如果(postID!=null)
{
comments=ses.createQuery(“从注释c中选择c,其中c.postID=“+postID+”按c.commentDate desc排序”).list();
}
HibernateUtil.closeSession();
返回评论;
}

同时重定向到JSP的“最简单”方法是什么?我可以在这里解析这个JSON并显示它?

您不需要将页面重定向到JSP

您需要的是页面的通用模板(jsp),用于显示文章及其json中的答案。此页面应进行ajax调用,以获取相应帖子(及其答案)的json并在页面中呈现

现在的问题是如何将帖子id传递到此页面。
您可以通过如下设置一个非html标记来实现这一点<代码>。加载页面后,jquery将使用此标记(并提取
属性)来形成ajax调用的url


例子 假设您有一个页面来显示所有帖子的列表。此页面看起来像

<a href="post.jsp?post_id=1"> post1</a>
<br>
<a href="post.jsp?post_id=2"> post2</a>

放在url
服务/评论中引用的jsp页面中。另外,您不需要使用
window.location.href
重定向,您可以简单地使用类似“谢谢您的输入@shanmuga”的超链接,但我仍然不明白在上述情况下
value
属性如何是动态的?请注意,我在问题中提到了许多行和JSON(postID=1)只是其中一个示例。我已经编辑了上面的答案。希望代码示例能有所帮助。非常感谢您的时间和努力。这很好。我不知道
请求。getParameter(“”
),因此编写了一个函数,通过解析当前窗口位置来提取postID。但是,您所解释的内容非常清晰!!
<body>
<script type="text/javascript">
$(document).ready(
    function () {
        //extract the post_id from tag value
        var post_id = $("post_id").attr("value");
        //form the rest url using post_id
        var post_url = ".../services/comments?postID="+post_id;
        $.ajax(
            {
                url: post_url,
                success: function(data, status, jqXHR, json) {
                    json_data = JSON.parse(data);
                    html="";
                    for(var i=0; i<json_data.length; i++) {
                        //Comments rendering logic
                        html+= "<h5>"+json_data[i].comment +"</h5>";
                    }
                    $("#container").html(html);
                }
            }
        );
    }
);
</script>
<post_id value="<%= request.getParameter("post_id") %>" > </post_id>
<div id="container">
</div>
</body>