您好我在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重新加载图像时,它不会调用transactionFunc()这是一个jsp函数(此函数访问java类并获取<img>
标记源的更新值。
如何解决此问题,以便每次重新加载图像时都调用transactionFunction()?
答案 0 :(得分:0)
您正试图在JavaScript中调用JSP方法。
原因JSP文件在编译期间编译为.class,在客户端执行JavaScript脚本。
将您的java代码转换为JavaScript或将java代码放入java文件中。即servlet或另一个JSP从Ajax调用该方法并在成功块中设置src
of ajax。
或强>
而不是java代码使用JavaScript函数为您的条件。根据您的代码和要求,它可能几乎没有变化。
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;
}