有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

从JSP 1到JSP 2的java数据

我试图将两个值从JSP1传递到JSP2。我在JSP1和JSP2中使用下面给出的代码。我想在JSP2中显示key和value的值,但下面“output”部分给出的输出正在显示。我希望将这些值传递给JSP2,以便对它们执行一些逻辑。在执行JSP2中的逻辑之后,我想回到JSP1

所以JSP1从Java中的控制器类获取值。JSP1中有一个循环,JSP2在JSP1的循环中被调用。现在我无法访问从循环传递的值,但我可以访问从控制器类发送到JSP1和JSP2中的JSP1的值。因此,这个问题是由于循环中的值没有传递给JSP2而引起的

JSP1

<% request.setAttribute("key", "${entityitem.key}"); %>
<% request.setAttribute("value", "${entityitem.value}"); %>
<jsp:include page="JSP2.jsp"/>

JSP2

<%= request.getAttribute("key") %>  :    <br>
<%= request.getAttribute("value") %>

输出:

${entityitem.key}
${entityitem.value}

所需输出: 价值观

${entityitem.key}
${entityitem.value}     

共 (2) 个答案

  1. # 1 楼答案

    您希望将值从一个jsp发送到另一个jsp,但问题是这两个页面如何相互通信?必须将一个jsp调用到另一个jsp中,否则可以设置会话变量并尝试在另一个变量中查找值。您在这里也做了同样的操作,但问题是,在会话集属性中,您没有使用el表达式设置值,而是传递字符串

    您可以使用cookies,也可以在下一个jsp中使用该值。如果可能,请使用requestdispatcher,因为它比一切都好

  2. # 2 楼答案

    请检查以下事项

    请确保从jsp页面中删除这一行

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    

    并确保您使用的是servlet 2.4或更高版本

    在你的情况下,如果你想传递一些值,请不要包含jsp页面。相反,使用request.getRequestDispatcher()重定向到第二个jsp页面,并使用相同的requestdispatcher从第二个jsp页面传递值,我认为您将获得该值