繁体   English   中英

如何正确执行JSP代码以将HttpSession中的值检索到JavaScript函数中?

[英]How can I correctly execute JSP code to retrieve a value from the HttpSession into a JavaScript function?

我正在使用基于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那些试图从是neamed 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值为null。

可能是什么问题呢? 我想念什么?

TNX

从服务器加载网页后,仅对JSP scriptlet标记进行一次评估。 第一次从服务器加载页面时,该scriptlet表达式的值将作为文本粘贴到JS函数中。

在JS函数rifiuta每次调用中,该值都不会从会话中加载。

因此,如果您在单击按钮时调用rifiuta,则不会从会话中获取doc_num属性的最新值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM