【问题标题】:Reload an <img src =<%= function() %> > in jsp在 jsp 中重新加载 <img src =<%= function() %> >
【发布时间】:2017-01-15 01:39:15
【问题描述】:

您好,我有一个关于在 jsp 页面中重新加载图像的问题

我的代码是:

<!DOCTYPE html>
<html lang="en">
<head>
<!-- Script for auto refresh of graphs with 5 seconds interval -->
 <script type="text/javascript">
 var load, generation, store, EP,transaction,Battery;
 window.onload = function() {

 transaction = document.getElementById("Transaction");
 setInterval(function() {

    transaction.src = transaction.src.replace(/\?.*/, function() {
        return '?' + new Date()
    })
}, 1000)

}
</script>                   
<%!
public String transactionFunc(){
System.out.println("---------transactionFunc------------");
String name=PSMApp.getInstance().notif.getTransaction();
String src = "../Stylesheet/images/EnergyDeficit256.png";
if(name!=null && name.equals("BUY")){
src = "../Stylesheet/images/EnergyDeficit256.png";
}
else if(name!=null && name.equals("SELL")){
src = "../Stylesheet/images/EnergySurplus256.png";
}
return src;
}
%>
<div class="col-md-4">
    <img src=<%=transactionFunc() %>id="Transaction">
</div>


</body>
</html>

当我尝试使用上面的 Javascript 重新加载图像时,它没有调用作为 jsp 函数的 transactionFunc()(此函数访问 java 类并获取 &lt;img&gt; 标记的源的更新值。 如何解决此问题,以便每次重新加载图像时都会调用 transactionFunction()?

【问题讨论】:

  • 从哪里调用该函数?
  • @khAn : id="Transaction"> 我将此函数作为图像 src
  • 从哪个事件调用该函数?
  • window.onload 是事件@khAn
  • 这个link似乎在你所走的路线上有答案

标签: java jsp web-applications reload


【解决方案1】:

您正在尝试在 JavaScript 中调用 JSP 方法。

原因是 JSP 文件在编译期间编译为 .class 并在客户端执行 JavaScript 脚本。

要么将你的 java 代码转换为 JavaScript,要么把你的 java 代码放在 java 文件中。即 servlet 或另一个 JSP 从 Ajax 调用该方法并在成功块中设置 src ajax。

根据您的条件使用 JavaScript 函数代替 java 代码。根据您的代码和要求,它可能会稍有变化。

 function transactionFunc(){
 var name='<%= PSMApp.getInstance().notif.getTransaction()%>';
var  src = "../Stylesheet/images/EnergyDeficit256.png";
if(name !=null && name=="BUY"){
src = "../Stylesheet/images/EnergyDeficit256.png";
}else if(name!=null && name.equals("SELL")){
src = "../Stylesheet/images/EnergySurplus256.png";
}
return src;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    • 2021-07-02
    • 2015-07-02
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多