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

时间:2014-06-19 09:44:11

标签: java javascript jquery jsp

嘿,我是一名php开发人员,这是我第一次使用jsp。现在我从我的类中检索了一个Json字符串并将其转换为GSON。我在result.jsp中显示了一个字段,例如: - 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>

我在SO周围阅读并用谷歌搜索并理解我可以制作一个隐藏的形式。现在我创建一个包含以下两个字段的表单,并使用锚标记提交表单。但是表格中的值需要根据点击的ID发布,我该如何制作动态?

所以如果我的表格如下: -

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

我的details.jsp就像: -

<%= request.getParameter("firstname") %>
<%= request.getParameter("phone") %>

我希望根据点击的ID和要提交的表单设置名字和电话。我可以从此页面中的diff对象获取String / Integer值。我需要使用JQuery吗?有什么帮助吗?

我也知道我应该使用JSTL。我很快就会谈到这一点。谢谢。

3 个答案:

答案 0 :(得分:2)

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

    <a href="#" onclick="submitHiddenForm("<%=lsinner.getFirstName()%>", "<%=lsinner.getPhone()%>");">...

您的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();
   }

我希望这会有所帮助。

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

答案 1 :(得分:1)

点击ID调用javascript函数传递函数内部的值,您可以动态设置表单的值,方法是让document.getElementById("firstname").value=value passed等每个元素类似地设置其他字段,最后{{1} }

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

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> 会隐藏元素。 检查这些是为了更好地理解。

How to submit a form using javascript?

答案 2 :(得分:0)

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

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

您可能在PHP中也这样做。

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