从 JavaScript 函数获取返回 URL 并将其作为参数发送到 Struts 2 中的操作

问题描述 投票:0回答:1

我有一个 JavaScript 文件:

informacoesImportantes.js
,其中有一个函数可以生成 Whatsapp 的目标 URL。

我需要获取 URL 并将其作为参数传递给

qrCode.do
操作,但显然,它甚至在生成链接之前就调用了
qrCode.do
操作,因为它总是变空,但是当我打开浏览器控制台并打印变量,链接就在那里。

我正在尝试向

Action
发送一个参数,但该参数来自 JavaScript 函数。我用
<c:set>
尝试了几种方法,甚至在
javascript:
中设置的参数后直接调用
src
,但没有成功。

informacoesImportantes.js
:

function gerarUrlWhatsapp(especialidade,data,hora,medico,unidadeMedica,enderecoCompleto) {

    var texto = "Seguem dados de confirma\u00e7\u00e3o do agendamento: "+"\n"+
    " Especialidade: "+especialidade+"\n"+
    " Data: "+data+"\n"+
    " Hora: "+hora+"\n"+
    " M\u00e9dico: "+medico+"\n"+
    " Unidade "+unidadeMedica+"\n"+
    " Endere\u00e7o: "+enderecoCompleto + "\n"+
    " Informa\u00e7\u00f5es importantes:" + "\n";
    
    return "https://wa.me/?text=" + texto;
}

agendamentoDetalhe.jsp
:

<div class="col-sm-3 gnm-container-qrcode">
  <script>
      var urlWhats = gerarUrlWhatsapp('${ agendamento.especialidade.dsEspecialidade}','${dateParts[0]}','${dateParts[1]}','${agendamento.nomePrestador}','${agendamento.unidadeMedica.nome}','${agendamento.unidadeMedica.enderecoCompleto}');
  </script>
    <c:set var="qrCodeUrlWhatsapp" value="${urlWhats}" />
  <img src="../qrCode.do?qrCodeUrlWhatsapp=javascript:gerarUrlWhatsapp('${ agendamento.especialidade.dsEspecialidade}','${dateParts[0]}','${dateParts[1]}','${agendamento.nomePrestador}','${agendamento.unidadeMedica.nome}','${agendamento.unidadeMedica.enderecoCompleto}');"/>
    <p>${urlWhats}</p>
</div>

struts.xml
:

  <action name="qrCode" class="**" method="qrCode">
    <result name="success" type="stream">
      <param name="contentType">image/jpeg</param>
      <param name="inputName">qrCodeImage</param>
      <param name="bufferSize">4096</param>
    </result>
  </action>

AgendamentoAction.java
:

public String qrCode() {
  qrCodeImage = generateQrCodeImpl.createQrCode(accessToken, qrCodeUrlWhatsapp);
}
javascript html jsp struts2 struts
1个回答
0
投票

您无法在

<img src=
中调用 JavaScript 函数。但您可以修改
src
属性的值。如果您向
id
标签添加
<img>
属性,则可以使用 JavaScript 从
document
获取此元素,并在调用自定义函数后修改
src
属性。

下面的脚本应该位于 JSP 文件中,因此在渲染文档之前已经对 EL 表达式进行了计算。

<img id="qrCodeId" src="#">
<script>
   var urlWhats = gerarUrlWhatsapp('${ agendamento.especialidade.dsEspecialidade}','${dateParts[0]}','${dateParts[1]}','${agendamento.nomePrestador}','${agendamento.unidadeMedica.nome}','${agendamento.unidadeMedica.enderecoCompleto}');
   document.getElementById("qrCodeId").src="../qrCode.do?qrCodeUrlWhatsapp="+encodeURIComponent(urlWhats);
</script>
© www.soinside.com 2019 - 2024. All rights reserved.