【问题标题】:read parameters passed by one jsp to another读取一个jsp传递给另一个jsp的参数
【发布时间】:2014-01-12 16:45:41
【问题描述】:

我想使用HTTP POST 方法读取一个JSP 传递给另一个的参数。

以下是我的两个JSP 文件。

One.jsp

<body>
<form action="Two.jsp" method="post">
    <input type="text" value="test value" name="txtOne">
    <input type="submit" value="Submit">
</form>
</body>

Two.jsp

<body>
    <% response.getWriter().println(request.getParameter("txtOne")); %>
</body>

我可以使用 scriplet 访问 Two.jsp 文件中的参数。
我想避免scriplet,所以我正在寻找JavaScriptjQuery 解决方案。
到目前为止,我已经搜索并找到了仅读取使用 GET 方法(query string only) 发送的参数的 JavaScript 解决方案。

任何建议将不胜感激。

提前致谢。

解决方案: 我能够使用 JSTL 获得价值:

${param.txtOne}

【问题讨论】:

    标签: java javascript jquery html jsp


    【解决方案1】:

    尝试表达式语言 - ${txtOne},如果 one.jsp 中的方法是 GET 而不是 POST,您将能够读取 javascript 中的 URL 并提取参数值来自那里。

    【讨论】:

      【解决方案2】:

      是的,您可以通过使用JSTL 获得价值

      ${param.txtOne}
      

      更新

      来自EL info page

      在 EL 中有几个 implicit objects 可用。

      EL                                  Scriptlet (out.print and null checks omitted!)
      ----------------------------------  ---------------------------------------------
      ${param.foo}                        request.getParameter("foo");
      ${paramValues.foo}                  request.getParameterValues("foo");
      ${header['user-agent']}             request.getHeader("user-agent");
      ${pageContext.request.contextPath}  request.getContextPath();
      ${cookie.somename}                  Too verbose (start with request.getCookies())
      

      隐式对象

      JSP 表达式语言定义了一组隐式对象:

      • pageContext:JSP 页面的上下文。提供对各种对象的访问,包括:

      • servletContext:JSP 页面的 servlet 和同一应用程序中包含的任何 Web 组件的上下文。请参阅访问 Web 上下文。

      • session:客户端的会话对象。请参阅维护客户端状态。

      • request:触发JSP页面执行的请求。请参阅从请求中获取信息。

      • response:JSP 页面返回的响应。请参阅构建响应。

      此外,还提供了几个隐式对象,可以轻松访问以下对象:

      • param:将请求参数名称映射到单个值

      • paramValues:将请求参数名称映射到值数组

      • header:将请求头名称映射到单个值

      • headerValues:将请求标头名称映射到值数组

      • cookie:将 cookie 名称映射到单个 cookie

      • initParam:将上下文初始化参数名称映射到单个值

      最后,有些对象允许访问使用范围对象中描述的各种范围变量。

      • pageScope:将页面范围的变量名称映射到它们的值

      • requestScope:将请求范围的变量名称映射到它们的值

      • sessionScope:将会话范围的变量名称映射到它们的值

      • applicationScope:将应用程序范围的变量名称映射到它们的值

      【讨论】:

        【解决方案3】:

        我想避免使用 scriplet,所以我正在寻找 JavaScript 或 jquery 解决方案。

        你不能。

        请求对象只能在服务器端访问,即在您的 JSP 中。您不能在客户端访问请求或响应对象,即javascript/jquery/whatever.

        如果您想在 javascript 中访问 jsp 值,请尝试类似

         var news=<%= request.getParameter("txtOne")) %>;
        

        附注:Avoid scriplets and go for Expression language.

        【讨论】:

          【解决方案4】:

          现在是时候转向一些 MVC 框架,例如 struts 而不是普通的 JSP。然后你可以从参数中填写一个 ActionForm 并在 Two.jsp 上使用它们。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-09-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多