【发布时间】:2012-06-22 02:53:26
【问题描述】:
当 JSF/XPages 应用程序启动时,它会读取 faces-config.xml 以获取托管 bean、验证器等。我可以在运行时操作加载的配置吗?例如动态添加验证器以确保我的自定义代码能够运行。
我不是要在运行时更改 xml 文件,而是在加载后更改内存表示。
XPages 使用 JSF 1.x 运行时,因此 JSF 2.0 构造可能不起作用
【问题讨论】:
当 JSF/XPages 应用程序启动时,它会读取 faces-config.xml 以获取托管 bean、验证器等。我可以在运行时操作加载的配置吗?例如动态添加验证器以确保我的自定义代码能够运行。
我不是要在运行时更改 xml 文件,而是在加载后更改内存表示。
XPages 使用 JSF 1.x 运行时,因此 JSF 2.0 构造可能不起作用
【问题讨论】:
是的,您可以添加许多 JSF 工件,这些工件通常在 faces-config.xml 中配置,其中包括 Application class。
Application application = FacesContext.getCurrentInstance().getApplication();
application.addValidator("fooValidator", "com.example.FooValidator");
// ...
您可以在急切初始化的应用程序范围的托管 bean 中完成这项工作。
@ManagedBean(eager=true)
@ApplicationScoped
public class Config {
@PostConstruct
public void init() {
// ...
}
}
【讨论】: