Skip to main content
 首页 » 编程设计

jsf之primefaces blockui 不隐藏

2024年10月25日7JustinYoung

我有一个显示用户输入的对话框。 这个对话框有一些验证,当验证失败时,blockui 就会消失。

这在我的笔记本电脑上运行良好,上面有所有东西。 但是当我将 war 文件部署到远程服务器上并对其进行测试时,我的 blockui 不会在验证错误后“解锁”。我收到咆哮消息,指出哪个字段有误,然后咆哮声消失了,但 blockui 一直阻止我的对话。不允许用户更正输入。

                <p:commandButton id="bttAddUser" value="Submit" update=":contentView:lstUsers :growl"  oncomplete="handleSubmitRequest(xhr, status, args, 'newUserDialog','newUserForm');" actionListener="#{userController.create}"> 
                    <p:blockUI id="addBlockUI" trigger="bttAddUser" block="newUserGrid"></p:blockUI> 
                </p:commandButton> 

两个系统,我的笔记本电脑和远程服务器都有 glassfish 3.1.2.2。我试图弄清楚是否有办法做到这一点并强制解锁用户界面。

有什么想法吗?

编辑:

看来这不是网络问题,而是其他原因: 我实际上遇到了一个错误:

SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data 

我的对话:

    <h:form id="newUserForm"> 
        <p:panelGrid id="newUserGrid" columns="2"> 
            <h:outputText value="Email : " ></h:outputText> 
            <p:inputText value="#{userController.newUser.email}" required="true" requiredMessage="Please the email of the user" validatorMessage="Email is invalid" > 
                <f:validateRegex pattern="[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]" /> 
            </p:inputText> 
 
            <h:outputText value="Name : " ></h:outputText> 
            <p:inputText value="#{userController.newUser.name}" required="true" requiredMessage="Please the name of the user" ></p:inputText> 
 
            <h:outputText value="Role"></h:outputText> 
            <p:selectOneMenu id="newUserRole" required="true" value="#{userController.newUser.roleid}" requiredMessage="A role must be chosen"> 
                <f:selectItems value="#{userController.listRoles}" var="_role" itemValue="#{_role}" itemLabel="#{_role.roleid}"></f:selectItems> 
                <f:converter converterId="misc.util.RoleConverter"></f:converter> 
            </p:selectOneMenu> 
            <h:outputText value="TimeZone"></h:outputText> 
            <p:selectOneMenu id="newUserTz" required="true" value="#{userController.newUser.tzone}" requiredMessage="TimeZone must be specified"> 
                <f:selectItems value="#{userController.listTimeZone}" var="_tz" itemValue="#{_tz}" itemLabel="#{_tz}">  </f:selectItems> 
            </p:selectOneMenu> 
 
            <h:outputText value="Password"></h:outputText> 
            <p:password value="#{userController.newUser.password}" required="true"  requiredMessage="Define a password"></p:password> 
            <f:facet name="footer"> 
                <p:commandButton id="bttAddUser" value="Submit" update=":contentView:lstUsers :growl"  oncomplete="handleSubmitRequest(xhr, status, args, 'newUserDialog','newUserForm');" actionListener="#{userController.create}"> 
                </p:commandButton> 
                <p:commandButton type="reset" value="Reset"></p:commandButton> 
            </f:facet> 
            <p:blockUI id="addBlockUI" trigger="bttAddUser" block="newUserGrid" widgetVar="blockUI"></p:blockUI> 
        </p:panelGrid> 
    </h:form> 

我在 Solaris 上遇到错误,但在 Windows 上没有。两者都有 glassfish 3.1.2.2 build 5。

请您参考如下方法:

终于解决了这个问题。

我的 WebApp 中有两个 primefaces jar:

一个在domain/lib下,另一个在WEB-INF/lib下。

似乎在使用primefaces的某些功能时,它会返回更多。

发表于Primefaces Forums