Issue
Somewhere in my code, I'm adding an attribute into the session.
session.setAttribute("message", message);
And in my HTML file, I want to remove it right after I comsume it.
<div th:if="${session.message != null}">
// consume message
// remove message from session.
</div>
How do I do that?
Solution
I solved my problem. Created a component with this method.
public void removeVerificationMessageFromSession() {
try {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
HttpSession session = request.getSession();
session.removeAttribute("verificationMessage");
} catch (RuntimeException ex) {
log.error("No Request: ", ex);
}
}
and then I called this method in my code right after I consumed the message.
<div th:if="${session.message != null}">
// I consumed the message
<div th:text="${@sessionUtilityBean.removeVerificationMessageFromSession()}"></div>
</div>
Answered By - oxyt
Answer Checked By - David Goodson (JavaFixing Volunteer)