【问题标题】:how to pass javascript value to same jsp page如何将javascript值传递给同一个jsp页面
【发布时间】:2015-06-19 15:33:33
【问题描述】:

我想从 java 脚本中获取页面 url 并检查该 url 值以破坏脚本(在同一 jsp 页面内)。

<script>
var currentUrl=window.location.href;
</script>

<c:when test="${fn:containsIgnoreCase(currentUrl, 'homepage') or fn:containsIgnoreCase(currentUrl, 'accountpage')}">

// need to do some operation for this purticular page only.
</c:when>

请给我建议。 提前致谢, 穆图

【问题讨论】:

  • 不能将js变量直接访问到EL中
  • @Arvind:任何其他获取脚本网址的方法。

标签: javascript jquery html jsp atg


【解决方案1】:

如果您可以通过请求访问 URL,为什么还要从 JavaScript 访问 URL?使用OriginatingRequest bean,您可以执行以下操作:

<dsp:getvalueof bean="/OriginatingRequest.requestUri" var="requestUri" />

这将允许您进行如下检查:

<c:when test="${fn:containsIgnoreCase(requestUri, 'homepage') or fn:containsIgnoreCase(requestUri, 'accountpage')}">
    // need to do some operation for this particular page only.
</c:when>

这是满足上述特定用例的最简单方法。

【讨论】:

    【解决方案2】:

    您要实现的目标存在许多问题。

    JavaScript 代码(在&lt;script/&gt; 标签内)在客户端执行,而 JSP EL 代码(在&lt;c:when/&gt; 标签和fn:containsIgnoreCase() 函数内)在服务器端执行。

    这两段代码不在同一个系统中运行。他们彼此不可见

    这两段代码不是同时运行的。服务器端代码将在服务器生成 HTTP 响应时执行,生成的 HTML 将被发送回浏览器。然后浏览器将执行客户端代码。因此,尽管您的 javascript 代码在 JSP 文件中出现在您的 JSP EL 代码之前,但它们将在不同的时间执行 - JSP EL 代码将首先执行(由服务器),然后 JavaScript 将被执行(由浏览器)

    最后一点,语言不一样。即使这两段代码要在同一个系统中执行,EL 也不是 JavaScript,JavaScript 也不是 EL。在一个块中以一种语言声明的变量将在另一个块中以另一种语言不可见。

    您可以用一种语言 (EL) 编写您需要的所有逻辑,并使用 pageContext.request.requestURLpageContext.request.requestURI 对象属性在同一系统中按照您希望的顺序执行它

    【讨论】:

      【解决方案3】:

      试试这个:

      <html>
          <script language="javascript" type="text/javascript">
          function call(){
          var name = "xyz";
          window.location.replace("a.jsp?name="+name);
          window.onload = function() {
             call();
          }
          </script>
          <%
          String name=request.getParameter("name");
          if(name!=null){
          out.println(name);
          }
          %>
       </html>
      

      【讨论】:

      • Ritesh,但我没有任何按钮。页面开始加载时我需要该值。
      猜你喜欢
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      相关资源
      最近更新 更多