JSF客户端验证

时间:2017-12-03 08:54:49

标签: validation jsf primefaces

我有以下代码:

<div class="panel panel-default Border">
    <div class="panel-heading PanelHeaderBgColor h4 WhiteTextColor">Benutzer</div>
    <div class="panel-body">

        <div class="row">
            <div class="col-md-12">
                <p:commandButton styleClass="btn btn-success" value="Add user"
                                    oncomplete="PF('addUserDialog').show()">
                </p:commandButton>
            </div>
        </div>

        <div class="row">
            <div class="col-md-12">

                <h:form id="right">
                    <p:dataTable id="userDT" var="user" style="min-height: 600px;"
                                        value="#{users}" selectionMode="single"
                                        selection="#{selectedUser}" rowKey="#{user.id}">

                        <p:column headerText="Username">
                            <h:outputText value="#{user.username}" />
                        </p:column>
                        <p:column headerText="Ganzer Name">
                            <h:outputText value="#{user.fullName}" />
                        </p:column>
                        <p:column headerText="Email">
                            <h:outputText value="#{user.email}" />
                        </p:column>
                        <p:column headerText="Auftraggeber">
                            <h:outputText value="#{user.customer}" />
                        </p:column>
                    </p:dataTable>
                </h:form>
            </div>
        </div>

        <h:form id="addUserForm">
            <p:dialog header="Add new user"
                                widgetVar="addUserDialog" modal="true"
                                showEffect="fade" hideEffect="fade" closeOnEscape="true"
                                resizable="false">

                <div class="row">
                    <div class="col-md-6">
                        <h:outputLabel for="addUsername" value="Username"></h:outputLabel>
                            <h:inputText styleClass="form-control" id="addUsername"
                                            maxlength="50" value="#{data.username}"></h:inputText>
                    </div>
                    <div class="col-md-6">
                        <h:outputLabel for="addUserFullname" value="Ganzer Name"></h:outputLabel>
                        <h:inputText styleClass="form-control" id="addUserFullname"
                            maxlength="50" value="#{data.fullName}"></h:inputText>
                    </div>
                </div>
                <div class="row">

                    <div class="col-md-6">
                        <h:outputLabel for="addUserPassword" value="Passwort"></h:outputLabel>
                        <h:inputSecret styleClass="form-control" id="addUserPassword"
                            maxlength="15" value="#{data.password}"></h:inputSecret>
                    </div>
                    <div class="col-md-6">
                        <h:outputLabel for="addUserPasswordRepeat"
                            value="Passwort wiederholen"></h:outputLabel>
                        <h:inputSecret styleClass="form-control"
                            id="addUserPasswordRepeat" maxlength="15"
                            value="#{data.passwordRepeat}"></h:inputSecret>

                    </div>
                </div>

                <f:facet name="footer">
                    <div class="row">
                        <div class="col-md-12">
                            <p:commandButton value="Speichern"
                                actionListener="#{logic.createUser}" update=":left @form"
                                styleClass="btn btn-success"
                                onsuccess="PF('addUserDialog').hide();"></p:commandButton>
                        </div>
                    </div>
                </f:facet>
            </p:dialog>
        </h:form>
    </div>
</div>

当用户打开页面时,会有一个包含用户的表格。有一个用于添加新用户的按钮。按下此按钮后会出现一个对话框,必须输入用户名,全名和密码。

我的问题是:有没有办法在客户端验证密码,基本上我有一些规则,它必须至少五个字符,并应包含一些特定的字符。我看过一个关于这个的教程,他们正在使用正则表达式验证器和长度验证器但是当我在我的页面中使用这种方法时,可以说用户输入的密码无效,按下按钮后关闭添加对话框,然后我必须再次打开对话框以查看这些错误消息,那么有没有办法不关闭对话框但仍显示错误消息?

0 个答案:

没有答案