1

我正在尝试使用 jsf viewParam 在视图渲染之前获取参数“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>

重置密码.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 始终为空?

4

0 回答 0