代码之家  ›  专栏  ›  技术社区  ›  Isabel Jinson

如何将Javascript变量传递给<jsp:setProperty>JSTL呢?

  •  3
  • Isabel Jinson  · 技术社区  · 14 年前

    如何将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>
    
    3 回复  |  直到 14 年前
        1
  •  5
  •   Community CDub    5 年前

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

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

    这样,在提交表单时,可以在服务器端将其作为请求参数。

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

    另请参见:

    如果你似乎找不到以前问过的问题,那就去你的办公室 user profile !

        2
  •  2
  •   Stian    14 年前

    你不能用这种方式把数据从JavaScript发送到JSTL。因为JSTL标记是在服务器端处理的,所以 <jsp:> <jsp:> 标签不会是发送回客户端的响应的一部分;它将只包含HTML/文本。因此您无法访问 <jsp:> 来自JavaScript的标记,因为它们不存在于文档中。

    编辑:对不起,是的 < 标签不可见。

        3
  •  0
  •   Russ    14 年前
    <script>
    var name = "<jsp:getProperty name="emp" property="firstName" />";
    </script>
    

    JSP代码在JavaScript之前执行,因此当JavaScript被处理时,标记将被emp.firstName.