我们在JSF项目中使用Prettyfaces和Rewrite库。
在PrettyFaces从URL中的查询参数设置这些属性的值之前,有没有办法重置bean属性(将它们设置为null)? 即我可以在PrettyFaces设置值之前调用bean上的方法吗?
答案 0 :(得分:0)
为了实现这一点,我认为最简单的方法是将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()
规则可以包含您想要的任何条件。
可能有其他方法可以做到这一点,但这是我能想到的最简单的方法。