【问题标题】:How do I share session attributes between a servlet and jsp file?如何在 servlet 和 jsp 文件之间共享会话属性?
【发布时间】:2011-11-07 19:04:32
【问题描述】:

我有一个表单,它在提交时会将其字段中的数据存储到数据库中。 struts-config 中的 forward 操作映射回关于将数据插入数据库的成功/失败的同一页面。一旦成功完成,我想提醒用户,所以我在表单的操作类的方法中设置了一个会话属性(即成功/失败)。然后,一旦再次访问 jsp 页面,我就会获取并打印出这个会话属性。

到目前为止,我已经在 Action 类中完成了这项工作:

 public static void setJavaScriptNotification(HttpServletRequest request, String notificationText) {

    HttpSession session = request.getSession(true);
    session.setAttribute("notification_javascript", notificationText);

}

并且在包含我的表单的 jsp 文件中:

    <% String notificationJavaScript = (String) request.getSession().getAttribute("notification_javascript");
pageContext.setAttribute("notification_javascript", notificationJavaScript);
request.getSession().removeAttribute("notification_javascript"); %>

<html>
<head>
<logic:present name="notification_javascript">
        <script type="text/javascript" language="JavaScript">
            function showAlerts() {
                alert("<bean:write name="notification_javascript"/>");
            }
        </script>
    </logic:present>
</head>       
<body onload="doPreOnload(); showAlerts();">

当我在 jsp 中打印出会话属性时,我找不到 notification_javascript 属性。我是 HTTP 新手,所以我可能在那里做错了。

【问题讨论】:

  • 虽然与您的问题无关,但您应该避免使用 scriptlet。
  • 感谢反馈@Alfredo O 将切换到 jstl

标签: java http jsp servlets struts-1


【解决方案1】:
  • setJavaScriptNotification() 的 session 中设置 notification_javascript 后,请求被转发到访问 notification_javascript 的 jsp。 p>

  • 如果是,那么 session.getAttribute("notification_javascript") 将完成这项工作。

    request.setAttribute() 与 session.setAttribute()

  • request.setAttribute() 将使密钥在下一页中可用。

  • session.setAttribute() 将使密钥在所有页面中可用。

【讨论】:

  • 我试过 String notificationJavaScript = (String) request.getSession().getAttribute("notification_javascript");在jsp中,但notification_javascript属性没有被传递。
  • 试试 session.getAttribute("notification_javascript")
  • 我必须解决的 jsp 页面中的 javascript 存在问题。感谢您的帮助。
猜你喜欢
  • 2011-08-16
  • 2011-12-20
  • 1970-01-01
  • 2010-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-18
  • 2011-09-08
相关资源
最近更新 更多