我们在JSF项目中使用了Prettyfaces和重写库。
有没有办法在PrettyFaces从URL中的查询参数设置这些属性的值之前重置bean属性(将它们设置为null)?也就是说,我们可以在PrettyFaces设置值之前调用bean上的方法吗?
发布于 2018-05-07 23:50:44
要实现这一点,我认为最简单的方法是将Bean注入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()规则可以包含您想要的任何条件。
可能还有其他方法可以做到这一点,但这是我能想到的最简单的方法。
https://stackoverflow.com/questions/50130932
复制相似问题