我正在尝试使用jsf viewParam在渲染视图之前获取参数say“paramName”并让它检查它是否有效。我使用它作为令牌系统,用户可以重置密码。有一个基本模板,其中包含相应的内容,页脚和标题模板。我有一个userBean,它是一个会话bean,具有以下代码
private String paramName; // +getter+setter
public void check() {
System.out.print(paramName);
}
/**
* @return the paramName
*/
public String getParamName() {
return paramName;
}
/**
* @param paramName the paramName to set
*/
public void setParamName(String paramName) {
this.paramName = paramName;
}
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>
resetPassword.xhtml
<h:body>
<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 id="paramName" name="paramName" value="#{userBean.paramName}" required="true" />
<f:event type="preRenderView" listener="#{userBean.check}" />
</f:metadata>
</ui:define>
<!-- Defines main content (not including header, footer, or menu) -->
<ui:define name="content">
</ui:define>
</ui:composition>
</h:body>
</html>
我已经在线阅读/完成了研究并遵循了教程,为什么我的paramName总是为空?