我想要一个验证器来重置我的密码。它将查看 URL 并从中解析出 token_id。我已经完成了其余的逻辑。我需要从我的 jsf 视图在页面加载时调用此验证器。但是我找不到使用 preRender 函数调用验证器的方法。下面的代码是调用 userBean 并检查令牌。我将如何更改它以调用验证器而不是托管 bean 属性?
<f:metadata>
<f:event listener="#{userBean.check()}" type="preRenderView"/>
</f:metadata>
重置密码.xhtml
<h:body>
<!-- Preload to assure the token is correct -->
<ui:composition template="/WEB-INF/templates/base.xhtml">
<ui:define name="title">Recover your username</ui:define>
<ui:define name="metadata">
<f:metadata>
<f:viewParam name="tok_id" value="#{userBean.token}" validator="resetValidator" />
</f:metadata>
</ui:define>
<ui:define name="content">
You should receive a email shortly with your new password in it.
</ui:define>
</ui:composition>
</h:body>
有没有可能与我使用模板有关?
base.xhtml
<h:body>
<div id="wrapper">
<f:view>
<ui:insert name="metadata"/>
<!-- Header Begin -->
<ui:insert name="header">
<ui:include src="/WEB-INF/templates/header.xhtml" />
</ui:insert>
<!-- Header End -->
<div id="mainBox">
<div id="main">
<!-- Content Begin -->
<ui:insert name="content" >
<ui:include src="/WEB-INF/templates/content.xhtml" />
</ui:insert>
<!-- Content End -->
</div>
</div>
<div style="clear: both"></div>
<!-- Footer Begin -->
<ui:insert name="footer">
<ui:include src="/WEB-INF/templates/footer.xhtml" />
</ui:insert>
<!-- Footer End -->
</f:view>
</div>
<h:outputScript library="js" name="base.js" />
</h:body>
内容.xhtml
<h:body>
<ui:composition></ui:composition>
</h:body>