【问题标题】:How do I pass Javascript variable to <jsp:setProperty> and JSTL?如何将 Javascript 变量传递给 <jsp:setProperty> 和 JSTL?
【发布时间】:2010-08-18 17:49:13
【问题描述】:

如何将 Javascript 变量传递给 JSTL?

<script>

    var name = "john";  

    <jsp:setProperty name="emp" property="firstName" value=" "/>   // How do I set javascript variable(name) value here ?

    <c:set var="firstName" value=""/>  // How do I set javascript variable (name) value here ?     

  </script>

【问题讨论】:

  • 您之前关于该主题的两个问题的答案是否不足?您没有在这些问题中更新/评论任何内容。

标签: javascript jsp jstl


【解决方案1】:

您需要将其作为请求参数发送。其中一种方法是填充隐藏的输入字段。

<script>document.getElementById('firstName').value = 'john';</script>
<input type="hidden" id="firstName" name="firstName">

这样你可以在提交表单时在服务器端获取它作为请求参数。

<jsp:setProperty name="emp" property="firstName" value="${param.firstName}" />

另一种方法是使用 Ajax,但这本身就是一个全新的故事/答案。

另见:

如果您似乎无法找到您之前提出的问题,请前往您的user profile

【讨论】:

    【解决方案2】:

    AFAIK 你不能以这种方式将数据从 JavaScript 发送到 JSTL。因为 JSTL 标签是在服务器端处理的,所以 &lt;jsp:&gt; 标签会在服务器端被解析并被 HTML 替换。因此&lt;jsp:&gt; 标签不会成为发送回客户端的响应的一部分;它将仅包含 HTML/文本。因此,您无法从 JavaScript 访问 &lt;jsp:&gt; 标记,因为它们不会存在于文档中。

    编辑:抱歉,&lt;jsp:&gt; 标签不可见。

    【讨论】:

      【解决方案3】:
      <script>
      var name = "<jsp:getProperty name="emp" property="firstName" />";
      </script>
      

      JSP 代码在 JavaScript 之前执行,因此在处理 JavaScript 时,标签将被替换为 emp.firstName 的内容。

      【讨论】:

      • JSTL 版本:
      • 他在问如何将数据从 JavaScript 传递到 JSTL,而不是反过来。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-07
      • 2020-01-11
      • 2017-04-29
      • 2011-04-09
      相关资源
      最近更新 更多