如何将jsf posidon主题与在springboot应用程序中登录的用户连接

问题描述 投票:0回答:1

这是在项目开始时用于更改poseidon主题的主题颜色的正确配置。

主题的颜色与数据库中的配置文件信息一起提供,我要做的是首先要检索配置文件,然后根据配置文件信息中的颜色更改颜色

@Bean
public ServletContextInitializer initializer() {
    return new ServletContextInitializer() {
@Override
        public void onStartup(ServletContext servletContext) throws ServletException {
 servletContext.setInitParameter("joinfaces.primefaces.theme", "poseidon-blue");

}
    };
}

个人资料POJO

 @Named("profileMBean")
 @SessionScoped
 public class ProfileMBean implements Serializable {

 private UserDTO user;
 private String theme ;  

    @PostConstruct
     public void init()  {

    user = getuserfom API;
      theme = user.getThemeName();


     }
}

ServletContext注入始终返回null@注入ServletContext servletContext;

我需要等同于

 <context-param>
        <param-name>primefaces.THEME</param-name>
        <param-value>#{profileMBean.user.themeName}</param-value>
  </context-param>

我使用了Spring Boot应用程序,但没有web.xml文件

spring-boot primefaces themes jsf-2.2
1个回答
0
投票

您可以在Spring中使用SecurityContextHolder来获取当前经过身份验证的用户。这里有一些示例:https://www.baeldung.com/get-user-in-spring-security

user = SecurityContextHolder.getContext().getAuthentication()...

© www.soinside.com 2019 - 2024. All rights reserved.