使用document.getElementById设置jsp元素

时间:2016-12-29 05:37:01

标签: javascript jsp

如何从document.getElementById

设置jsp变量值

我的HTML元素是

def download
  require 'zip'
  @files = Upload.where(:request_id => params[:id])
  t = Tempfile.new('tmp-zip-' + request.remote_ip)
  Zip::OutputStream.open(t.path) do |zos|
    @files.each do |file|
      puts file.image.url(:original, false)
      zos.add(file.image, file.image.url(:original, false))
      zos.put_next_entry(file.image)
    end
  end
end

我想将值设置为如下所示,但它无法正常工作

#<Zip::OutputStream:0x007f39508516d8>

1 个答案:

答案 0 :(得分:0)

不要混用EL(服务器端代码)和Jquery / Javascript(clientside)。 正如我在此解释的那样:https://stackoverflow.com/a/41382210/1107653
无法使用 <c:set>和javascript代码值。

  1. 在将JSP编译为Servlet时,在服务器上评估表达式语言。
  2. Servlet生成响应:html + javascript并将其发送回浏览器。
  3. 浏览器评估Javascript。
  4. 你能做什么:

    在服务器端:

    您可以直接使用元素的内容:${pulseDetails.noOfRecPerpage}

    <c:set var="noOfRecPerPage" value="${pulseDetails.noOfRecPerpage}">
    

    或者做一些javascript准备:

    <script>
        var noOfRecPerPage= "${pulseDetails.noOfRecPerpage}";
    </script>
    

    并直接在其他Javascript代码部分使用它。

    或在客户端:

    只需使用 javascript访问元素:

    <script>
        var noOfRecPerPage = document.getElementById('noOfRecPerPage').innerHTML;
    </script>