在f之前未调用preRenderView:查看语言环境属性

时间:2014-07-08 17:25:45

标签: jsf-2

我有一个基于JAAS表单的登录页面。用户可以通过表单或通过URL的GET参数登录。

要以编程方式登录,我为preRenderView添加了一个事件监听器。我还添加了f:view,因此我可以设置正确的区域设置。

我注意到方法activeLanguage(来自f:view locale属性)在tryLoginWithRequestParams之前调用。 (注意:一切仍然有效我不满意我的programmaticLogin方法没有先调用。)

为什么preRenderView事件中的方法没有先被调用?嗯,我想它只能在视图的render方法之前有效地调用(?)。

但是,我怎样才能首先调用程序化登录方法(在“所有”其他东西之前)?

相关代码:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui">
    <f:metadata>
        <f:event type="preRenderView" listener="#{loginController.tryLoginWithRequestParams}" />
    </f:metadata>
    <f:view locale="#{translationController.activeLanguage.language}">

PS:也许堆栈应该引入BalusC标签......:P

PPS:在f:metadata内移动f:view无效。

0 个答案:

没有答案