我有一個表單,提交時將數據從字段存儲到數據庫。在struts-config中向前的動作映射回數據插入到數據庫的成功/失敗的同一頁面。我希望在成功完成後提醒用戶,因此我在表單的操作類的方法中設置了會話屬性(即成功/失敗)。然後,我再次訪問jsp頁面後獲取並打印出此會話屬性。如何在servlet和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新手,所以我可能在那裏做錯了什麼。
儘管與您的問題沒有關係,您應該避免使用scriptlets。 –
感謝您的反饋@Alfredo O將切換到jstl – bneil