计算 SpringEL 表达式时出现异常:“#session.removeAttribute('message') in thymeleaf”

问题描述 投票:0回答:1
spring-boot session thymeleaf
1个回答
0
投票

此方法已不再使用 您必须创建一个实用程序 bean 并创建一个会话删除方法,然后在 thymeleaf 中使用该方法来删除属性

班级:

    package com.Contact.config;

import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import jakarta.servlet.http.HttpSession;

@Component
public class sessionUtilityBean {
    
    @Bean
     public void removeMessageFromSession() {
            try {
                System.out.println("removing message form session ");
                HttpSession session = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest().getSession();
                session.removeAttribute("message");
                
                
                
                
            } catch (Exception e) {
                e.printStackTrace();

            
            }

}

}

然后使用thymeleaf中的方法:

<div th:if="${session.message}"
                        th:classappend="${session.message.type}" class="alert "
                        role="alert">
                        <p th:text="${session.message.content}"></p>
                        <th:block
                            th:text="${@sessionUtilityBean.removeMessageFromSession()}"></th:block>
                    </div>
© www.soinside.com 2019 - 2024. All rights reserved.