所以我有这个jsp,我在javascript中创建了一个接受ArrayList<Product>
作为参数的函数。我想知道我是否可以在我的脚本标签中访问我的实体的getter和setter。可能吗?我有这个代码:
function compute(products) {
var productid1 = document.getElementById("product1").value;
var productquantity1= document.getElementById("productquantity1").value;
var price = 0;
var isDone = false;
for(var i = 0; i < products.size() && isDone === false; i++) {
if(products.get(i).getProductID === productid1) {
price = products.get(i).getProductPrice() * productquantity1;
isDone = true;
}
}
document.getElementById("totalPrice").value = parseInt(price);
}
我在身体<table>
内有这个
<tr>
<td>
Total Price: <input type="text" id="totalPrice">
</td>
</tr>
答案 0 :(得分:1)
Javascript通常在客户端运行。它作为纯文本到达那里,就像HTML一样。服务器和客户端的对象和类之间没有关系。因此这一行:
price = products.get(i).getProductPrice() * productquantity1;
不会也不会起作用。
要使其正常工作,您必须序列化在服务器端创建的列表的内容,并以某种方式将其传输到客户端。有一些框架可以帮助您做到这一点。基本上你必须创建与服务器端的类相对应的javascript对象并填充它们。通常,执行此操作的框架通过AJAX异步工作。
在ExtDirect上查看示例。我不确定它对你有好处,因为它是一个Spring扩展,所以它需要服务器端的Spring框架。然而,它可以是一个很好的起点,你可以搜索其他类似的解决方案,这将有利于你。