Я считаю, что для этого проще всего было бы внедрить компонент в объект RewriteConfiguration. Вам нужно убедиться, что приоритет переопределен так, чтобы этот провайдер появлялся раньше, чем встроенная функциональность PrettyFaces (я думаю, что -10 должно сработать, но вам может потребоваться поиграть с этим значением):
public class ExampleConfigurationProvider extends HttpConfigurationProvider
{
@Inject
private MySessionBean bean;
@Override
public int priority()
{
return -10;
}
@Override
public Configuration getConfiguration(final ServletContext context)
{
return ConfigurationBuilder.begin()
.addRule()
.when(Path.matches("/my-path").and(Direction.isInbound()))
.perform(new HttpOperation() {
@Override
public void performHttp(HttpServletRewrite event, EvaluationContext context)
{
bean.clearValues();
}
});
}
}
`` `
Обратите внимание, что правило .when()
может содержать любые условия, которые вы хотите.
Возможно, есть и другие способы сделать это, но это самый простой из всех, что я мог придумать.