我试图在页面加载时捕获 url 参数。我使用标签内的 beforePhase 属性来调用处理 PhaseEvent 的支持 bean 方法。我能够读取参数,但似乎有一些问题。支持 bean 方法执行两次。第一次我得到所有的 url 参数,但第二次我得到空值。
这是我得到的控制台中的输出(“BeforePhase ONLOAD”行是我在方法中的 SOP 语句。如您所见,SOP 被打印了两次(下面是控制台输出)-
* <_checkTimestamp> Apache Trinidad 在启用时间戳检查的情况下运行。这不应该在生产环境中使用。请参阅 WEB-INF/web.xml 中的 org.apache.myfaces.trinidad.CHECK_FILE_MODIFICATION 属性
beforePhase ONLOAD
<_isBeanValidationAvailable> 不存在 Bean 验证提供程序,因此禁用 bean 验证
beforePhase ONLOAD***
我必须使用这些 url 参数将其绑定到视图对象并检索页面的数据。但是如果该方法被调用两次,就像在这里调用的一样,那么第二次会导致一些数据库错误,或者最终我不会在屏幕上看到任何记录。
有没有办法处理这个?
我实际上遵循了此页面上看到的方法 1 示例 - http://jneelmani.blogspot.com/2013/01/adf-how-to-call-method-on-page-load.html。在这个例子中,他展示了如何避免 beforePhase 被多次调用,我已经做到了,但该方法仍然被调用了两次。
这里的任何建议都会有所帮助。
谢谢。