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