我需要根据数据库中的数据存储动态地绘制表格。当加载第一个网页(validator.jsp)时,它会转到一个数据库并返回一个名为cert的ArrayList。 (证书的描述,价值等)。如何将变量值从javacript设置为JSP?
<% java.util.ArrayList<Certificate> cert = OperacionesVidaDollars.getCertificates();%>
之后,当页面加载完成后,会调用一个javascript函数(函数drawCertificates)。该函数将绘制与ArrayList所具有的证书一样多的表。
<script type="text/javascript">
window.onload = drawCertificates;
function drawCertificates(){
alert("page finish loading, staring to draw certificates");
var i;
for(i=0;i<<%=cert.size()%>;i++){
createTable(i);
}
}
</script>
正如你可以在功能看到创建表中,变量文本是suppost取决于我
text = document.createTextNode("<%=cert.get(i).getDescription()%>");
为了更新变量我改变,我第一次调用JSP setVariable,更新计数器,然后尝试在getDescription中使用它,例如:
text = document.createTextNode("<%=cert.get(request.getAttribute("count")).getDescription()%>");
我有这个setVariable.jsp
<%
int num = Integer.valueOf(request.getParameter("number"));
request.setAttribute("count", num);
request.getRequestDispatcher("VidaDollarsCC.jsp").forward(request, response);
Cookie cookie = new Cookie("countCookie",String.valueOf(num));
cookie.setMaxAge(60*60*24);
response.addCookie(cookie);
%>
在其他JSP(validator.jsp)我是谁应该改变变量值这个javascript函数。
function setVariable(number){
alert("setting the number " + number);
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
}
xmlhttp.open("POST", "setVariable.jsp", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("number="+number);
}
在同一个JSP(validator.jsp)我有这个功能CREATETABLE(uniqID),我需要的是号码被更新取决于uniqID,因为我有有,我想一些信息一个ArrayList被显示。
function createTable(uniqID){
setVariable(uniqID);
text = document.createTextNode("<%=cert.get(request.getAttribute("count")).getDescription()%>");
}
但是不工作。有人知道为什么吗?我该如何解决它?如果您有其他想法可以实施,那也会很棒。
嗨@tsolakp。您假设正确,ajax调用成功,我已经调试该部分并且数字发送正确。我已经编辑了我的问题描述来解释我想要做什么。 – mavi