将变量从一个jsp发送到另一个jsp

时间:2013-09-12 11:35:51

标签: java javascript jsp session servlets

我有一个JSP文件 jsp 1.jsp 另一个JSP文件为 jsp 2.jsp

我使用<%@include file="jsp 2.jsp" %>

jsp 1.jsp 中加入 jsp 2.jsp

现在我需要在某个元素上执行click事件。在那个事件中,我想将一个字符串变量传递给包含jsp。

假设我有一个列表,点击它我想将列表名称转移到另一个JSP,

在另一个JSP中,我试图使用该字符串来执行某项任务。

我正在做所有这些没有任何servlet。 挑战一个!! 我已经google了很多次,但没有找到任何东西。

5 个答案:

答案 0 :(得分:11)

您有多种选择:

  1. 将其存储在会话中。

    // Memorise any passed in user.
    String username = request.getParameter("username");
    if (username != null && username.length() > 0) {
      session.setAttribute("username", username);
    }
    
  2. 将其存储为表单中的隐藏字段。

    <input name="username" type="hidden" value=""/>
    
  3. 将其存储在Cookie中。

    username = getCookie(userCookieName);
    
    // Get from cookie.
    function getCookie(name) {
      if (document.cookie) {
        index = document.cookie.indexOf(name);
        if (index !== -1) {
          f = (document.cookie.indexOf("=", index) + 1);
          t = document.cookie.indexOf(";", index);
          if (t === -1) {
            t = document.cookie.length;
          }
          return(document.cookie.substring(f, t));
        }
      }
      return ("");
    }
    
  4. 在sessionStorage中将其保留在客户端。有关详细信息,请参阅here

    sessionStorage.setItem("username", "...");
    
  5. 不是另一种选择,而是一种机制 - 在URL中传递它:

    .... onclick="window.location='details.jsp?username=...'
    

答案 1 :(得分:2)

如果在jsp 2中包含jsp 1的原因是发送变量,那么not needed。 您只需要在hidden中设置jsp 1变量,并使用jsp 2对象在jsp implicit request中设置您应该访问的变量。

答案 2 :(得分:1)

尝试使用Ajax with JQuery来实现您的目标,或者只需将String对象存储在session中,然后您可以在jsp2.jsp中将其删除。或者你可以简单地追加到url作为query string,其中有多种方式,上面的很少。

这些问题可能会对您有所帮助

Question 1

Question 2

Question 3

Question 4

答案 3 :(得分:0)

在jsp1中 用这种方式传递价值。

<form action="">
<input type="hidden" name="hidden" value="hidden">
<input type="submit" value="submit"></form>

在jsp2中获取值

String value=request.getParameter("hidden");

答案 4 :(得分:0)

您可以设置jsp:param,例如jsp:param element,或者查看此类似帖Passing parameters between JSP pages