gpt4 book ai didi

jsf - PrimeFaces:如何使主题动态化

转载 作者:行者123 更新时间:2023-12-02 01:09:47 24 4
gpt4 key购买 nike

我需要根据不同的用户使主题动态化,目前,我在 http://www.developer.am/primefaces/?page=Applying%20a%20Theme 中找到指南

它说:如果您想使主题动态化,请将 EL 表达式定义为参数值。

<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>#{loggedInUser.preferences.theme}</param-value>
</context-param>

按我的理解,主题会被不同的用户改变,对吧?即使我为用户在偏好设置中更改主题,我也不需要重新启动中间件,主题会立即更改,对吧?

请指导我,在此先感谢。

最佳答案

您似乎期望在解析 web.xml 时评估 EL 表达式。这不是真的。相反,所有从 web.xml 初始化参数中获取的 PrimeFaces 都是一个 String,表示如下所示的 EL 表达式:

String themeExpression = "#{loggedInUser.preferences.theme}";

然后,PrimeFaces 在每个 HTTP 请求上以编程方式评估它,如下所示,以获得实际值:

String theme = context.getApplication().evaluateExpressionGet(context, themeExpression, String.class);

实际上,它是请求范围的,而不是您所期望的应用程序范围的。然而,评估的属性反过来可以只是 session 范围 bean 的属性。

关于jsf - PrimeFaces:如何使主题动态化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18808823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com