我需要一些帮助来了解如何做我认为应该很容易的事情。
在我的控制器中,我正在将PDF转换为多个图像,并且我可以轻松地获取要处理的页数和需要处理的总页数。我将两者都放在会议上:
request.getSession().setAttribute("currentPageNumber", currentPageNumber);
request.getSession().setAttribute("totalPagesNumber", totalPagesNumber);
在视图上,我想显示一个知道这些值的进度条,执行类似CeilingOf(((currentPageNumber / totalPagesNumber)* 100)的操作,但我不知道如何持续获取这些更新的值。
如果我使用:
'<%= request.getSession().getAttribute("currentPageNumber")%>'
此问题将在页面加载之前解决(甚至在会话使用属性进行更新之前),并且都显示为空。
我需要怎么做才能在视图上访问这些值?非常感谢您的帮助
答案 0 :(得分:0)
您不能直接得到它。因为JavaScript是在客户端(浏览器)上执行的,而会话数据是在服务器上执行的。
在JavaScript中使用会话属性变量的一些方法:
在JSP中:
<input type="hidden" name="totalPagesNumber" value="${sessionScope.totalPagesNumber} />
Javascript:
var inputs = document.getElementsByTagName("input"), len = inputs.length, i, totalPagesNumber;
for (i = 0; i < len; i++) {
if (inputs[i].name == "totalPagesNumber") {
totalPagesNumber = inputs[i].value;
break;
}
}
在这里,我循环所有输入的隐藏字段,以便您可以在一个循环中获得所有值。