重新加载<img src="&lt;%=" function()="" %=""/>&gt;在jsp中

时间:2016-09-07 11:25:01

标签: java jsp web-applications reload

您好我在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()?

1 个答案:

答案 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;
}