Spring Boot:使用Thymeleaf从会话中删除属性

时间:2019-04-27 16:43:23

标签: spring-boot session thymeleaf

在我的代码中的某个地方,我正在向会话中添加一个属性。

session.setAttribute("message", message);

在我的HTML文件中,我想在使用后立即将其删除。

<div th:if="${session.message != null}">
   // consume message
   // remove message from session.
</div>

我该怎么做?

1 个答案:

答案 0 :(得分:0)

我解决了我的问题。使用这种方法创建了一个组件。

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);
        }
    }

然后我在消耗了消息之后立即在代码中调用了此方法。

<div th:if="${session.message != null}">
   // I consumed the message
   <div th:text="${@sessionUtilityBean.removeVerificationMessageFromSession()}"></div>
</div>