PrettyFaces和Rewrite库 - 在PrettyFaces从URL查询参数设置属性之前,我们如何调用bean方法?

时间:2018-05-02 09:09:39

标签: prettyfaces

我们在JSF项目中使用Prettyfaces和Rewrite库。

在PrettyFaces从URL中的查询参数设置这些属性的值之前,有没有办法重置bean属性(将它们设置为null)? 即我可以在PrettyFaces设置值之前调用bean上的方法吗?

1 个答案:

答案 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()规则可以包含您想要的任何条件。

可能有其他方法可以做到这一点,但这是我能想到的最简单的方法。