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

IT技术 java javascript jsp session servlets
2021-03-05 19:33:37

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

我已经包括JSP 2.jspJSP 1.jsp页面使用<%@include file="jsp 2.jsp" %>

现在我需要某个元素上的点击事件。在那个事件中,我想将字符串变量传输到包含的 jsp。

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

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

我在没有任何 servlet 的情况下做所有这些。挑战一个!!我已经谷歌了很多,但没有找到任何东西。

5个回答

您有多种选择:

  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. 把它储存在饼干里。

    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 中的客户端。有关详细信息,请参见此处

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

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

如果包括你的原因jsp 2jsp 1用于发送变量,那么它的not needed您只需要在 中设置一个hidden变量jsp 1,并且jsp 2您应该能够通过使用该jsp implicit request对象来访问它

尝试使用Ajax with JQuery来实现您的目标,或者您可以简单地将 String 对象存储在其中,session并且您可以在jsp2.jsp使用它时将其删除或者您可以简单地附加到 a ,url因为query string其中有多种方法,上面很少。

这些问题可能对你有帮助

问题 1

问题2

问题 3

问题 4

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

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

在jsp2中获取值

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

您可以设置一个jsp:param,如本示例中的jsp:param 元素,或者查看此类似的文章Passing parameters between JSP pages