【发布时间】:2026-01-29 04:25:01
【问题描述】:
我正在开发一个非常古老的基于 HttpServlet 的旧版 Java Web 应用程序,但在尝试将 JSP 代码运行到 JavaScript 函数时遇到以下问题。
所以,在一个 JSP 页面中,我发现这个 JavaScript 函数给我带来了一些问题:
function rifiuta() {
document.getElementById('notaRifiuto').value = document.getElementById('myRejectNote').value;
my_pkcoda = '<%=((request.getSession().getAttribute("doc_num")!=null?((String)request.getSession().getAttribute("doc_num")).trim():""))%>';
document.getElementById(my_pkcoda).checked = true;
checkRifiuta();
}
这很简单:
声明一个 **my_pkcoda** 尝试使用从名为 doc_num 的 HttpSession 获得的值进行初始化,这是通过以下方式完成的:
request.getSession().getAttribute("doc_num")
我很确定这个值在 HttpSession 中,因为我将它放入会话中(放入实现我的 HttpServlet 的类中:
req.getSession().setAttribute("doc_num", req.getParameter("pk"));
执行此操作后,我使用调试器检查它是否正确放入会话中,没问题,它已进入会话。
问题是当进入我的 JSP 页面时 rifiuta() JavaScript 函数被执行,当它尝试执行这个语句时:
my_pkcoda = '<%=((request.getSession().getAttribute("doc_num")!=null?((String)request.getSession().getAttribute("doc_num")).trim():""))%>';
我发现 my_pkcoda 值为空。
可能是什么问题?我错过了什么?
Tnx
【问题讨论】:
-
你可以试试
console.log('<%=((request.getSession().getAttribute("doc_num")!=null?((String)request.getSession().getAttribute("doc_num")).trim():""))%>')看看javascript控制台中显示的内容
标签: java javascript jsp session servlets