azu*_*ury 1 jsf primefaces jsf-2
我需要使不同用户动态化主题,目前,该指南位于http://www.developer.am/primefaces/?page=Applying%20a%20Theme
它说:如果您想使主题动态化,请将EL表达式定义为param值。
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>#{loggedInUser.preferences.theme}</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
以我的理解,主题将由不同的用户更改,对吗?即使我根据用户的喜好更改了主题,也无需重新启动中间件,主题会立即更改,对吗?
请指导我,谢谢。
您似乎期望在web.xml解析EL表达式时对其进行评估。这不是真的。相反,所有从web.xmlinit参数获取的PrimeFaces 都是一个String表示EL表达式,如下所示:
String themeExpression = "#{loggedInUser.preferences.theme}";
Run Code Online (Sandbox Code Playgroud)
然后,PrimeFaces在每个HTTP请求上以编程方式评估它,如下所示,以获取实际值:
String theme = context.getApplication().evaluateExpressionGet(context, themeExpression, String.class);
Run Code Online (Sandbox Code Playgroud)
实际上,它是请求范围的,而不是您所期望的应用程序的范围。但是,评估的属性又可以是会话作用域Bean的属性。
| 归档时间: |
|
| 查看次数: |
3244 次 |
| 最近记录: |