Java 将数据从一个jsp传递到另一个jsp并显示该jsp视图

Java 将数据从一个jsp传递到另一个jsp并显示该jsp视图,java,javascript,jquery,jsp,Java,Javascript,Jquery,Jsp,嘿,我是一名php开发人员,这是我第一次使用jsp。现在我从类中检索到一个Json字符串并将其转换为GSON。我在我的result.jsp中为eg:-ID显示一个字段,单击该ID,它应该转到details.jsp并显示关于该ID的更多信息 目前我的result.jsp如下:- <html> <body> <div class="list-group"> <% String

嘿,我是一名php开发人员,这是我第一次使用jsp。现在我从类中检索到一个Json字符串并将其转换为GSON。我在我的
result.jsp
中为eg:-ID显示一个字段,单击该ID,它应该转到
details.jsp
并显示关于该ID的更多信息

目前我的result.jsp如下:-

<html>
<body>
     <div class="list-group">
                <% 
                   String json = (String)request.getAttribute("jsonstring");
                    Gson gson = new Gson();
                    ConCom diff = new ConCom();
                    diff = gson.fromJson(json, ConCom.class);
                    List<ComparisonResultDTOarr> ls = diff.getComparisonResultDTOarr();

                    for(int i = 0;i<ls.size();i++)
                    {
                        List<AuditItemLogsDTOArr> lsinner = ls.get(i).getAuditItemLogsDTOArr();
                        %><a href="#" class="list-group-item">
                        <%out.println(lsinner.get(0).getKeyAsString());%></a><%
                    }
                    %>
                  </div>
</body>
</html>
<form action="details.jsp" method="post">
First name: <input type="text" name="firstname"><br>
Last name: <input type="text" name="phone">
</form>


如果您在details.jsp中也有diff对象,那么在普通链接中仅将ID作为参数传递就足够了

<a href="details.jsp?id=<%= id %>">details</a>

在PHP中可能也会这样做


JQuery是客户端JavaScript,不需要解决您的问题。

您可以在锚定标记的onclick事件期间调用JavaScript函数:

    <a href="#" onclick="submitHiddenForm("<%=lsinner.getFirstName()%>", "<%=lsinner.getPhone()%>");">...
我希望这有帮助


编辑:将diff改为lsinner,因为这是循环中使用的var。

单击ID调用传递函数内值的javascript函数,您可以通过获取每个元素(如
document.getElementById(“firstname”)来动态设置表单的值.value=传递的值
类似地设置其他字段,最后
document.myform.submit()

注意,因为我们是通过Id获取HTML元素,所以您可以使用

<form action="details.jsp" method="post" name="myform">
First name: <input type="hidden" name="firstname" id="firstname"><br>
Last name: <input type="hidden" name="phone" id="phone">
</form>

名字:
姓氏:
type=“hidden”
将隐藏元素。 检查这些以便更好地理解


不,我没有details.jsp中的diff对象,但谢谢您的建议。谢谢!这正是我想要的,还有一个问题。假设某些ID的用户有两个电话号码,而不是1,有没有关于如何处理的建议?对于初学者,您应该在隐藏表单中准备一个额外的文本字段(ID=phone2?),并在details.jsp上适当地处理它。您可以修改submithdeformjavascript函数并添加另一个phone参数。在onclick调用中,只需正确填充phone2的插槽(如果为空,则提供null或空字符串)。同样,您必须在details.jsp上处理不同类型的phone2输入:)最后一个问题,在我的servlet中,我基本上将字符串发送到result.jsp,我可以同时将它发送到details.jsp吗?当然,我喜欢只将视图转发给结果,而将响应传递给结果和细节。如@Lakshmi所述,您可以将另一个隐藏文本字段添加到表单:。当您将此表单提交到details.jsp时,您可以通过以下方式访问json字符串:request.getParameter(“jsonString”);所以我实现了上面的代码,当我点击任何一个ID时,我不知道JS函数是否真的在执行,也不知道它是否在将我的视图转发到details.jsp,我需要为此添加额外的JS吗?
   function submitHiddenForm(firstName, phone) {

       document.getElementById("firstname").value = firstName;
       document.getElementById("phone").value = phone;
       // attach a name attribute to your form tag
       // submit the form
       document.myForm.submit();
   }
<form action="details.jsp" method="post" name="myform">
First name: <input type="hidden" name="firstname" id="firstname"><br>
Last name: <input type="hidden" name="phone" id="phone">
</form>