JSF Primefaces重载问题,这可能是CSS问题还是其他任何问题?

时间:2013-05-15 07:49:51

标签: css3 jsf-2 primefaces

在我们的Web项目中,我们使用JSF Myfaces,Primefaces 3.5。我们为该项目创建了自己的primefaces主题。

我发现以下奇怪的问题,我怀疑是由于css / library等,

  • p上的多选复选框:dataTable适用于奇数次尝试。即,在第一次加载页面时,选择工作正常。如果我访问另一个页面并返回,则选中复选框不起作用。如果我再访问一页并卷土重来,它又会再次运作。如果它不起作用,如果我从浏览器重新加载页面它再次工作。 (所有浏览器的问题都是一样的)

  • p:ajaxStatus onstart js函数仅针对第一个ajax调用触发。对于所有后续调用,不会触发此事件。如果我重新加载页面,它会再次触发第一个ajax调用并停止。我们没有在任何ajax调用上设置任何全局设置,我假设所有调用默认为global = true(所有浏览器中的问题都相同)

  • 对于镀铬上的ap:barChart,x和y轴标签落入轴,但是当我重新加载页面时,显示器会被调整并且正确(因为它出现在firefox中),并且不再进行重新加载在会话期间,即使在从其他页面来回导航时也需要。

我们的应用程序顶部有一个菜单区域,ouputPanel使用ui:include基于ajax菜单选项进行更新。

我不确定是什么导致这些问题,以及为什么事情似乎在重新加载时工作正常。问题出在哪里?

第一个与多选选项相关的问题的视图代码如下所示。

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"           "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:head>
</h:head>
<h:body>
    <h:form id="dataForm">
        <p:messages id="tableMsgs" />
        <h:panelGroup>
            <p:dataTable value="#{usersBean.userDataModel}" var="user"
                id="userDataModel" rows="20" paginator="true"
                paginatorAlwaysVisible="false" editable="true"
                selection="#{usersBean.selectedUsers}"
                resizableColumns="false">

                <f:facet name="header">
                    <p:commandButton value="Flag User" process="@form"
                        action="#{usersBean.flagUser}"
                        icon="ui-icon-custom-arrow" iconPos="right"
                        update=":dataForm:tableMsgs"></p:commandButton>
                    <p:spacer width="10"></p:spacer>
                    <p:commandButton value="Delete User" process="@form"
                        icon="ui-icon-custom-arrow" iconPos="right" update="@form"
                        action="#{usersBean.deleteUser}">
                    </p:commandButton>
                </f:facet>

                <p:ajax event="rowEdit" listener="#{usersBean.onEdit}"
                    oncomplete="resetCSS()"
                    update=":dataForm:tableMsgs />
                <p:ajax event="rowEditCancel" oncomplete="resetCSS()" />

                <p:column selectionMode="multiple" style="width:15px;" />
                <p:column headerText="Department" sortBy="#{user.dept.name}"
                    style="white-space:pre-line;width:100px">
                    <h:outputText value="#{user.dept.name}"
                        style="white-space:pre-line;width:100px;display:block;">
                    </h:outputText>
                </p:column>
                <p:column headerText="UserName" sortBy="#{user.userLoginName}"
                    style="width:100px;">
                    <h:outputText value="#{user.userLoginName}"
                        style="width:100px;display:block;"></h:outputText>
                </p:column>
                <p:column headerText="Role" sortBy="#{user.role}"
                    style="width:100px;">
                    <p:cellEditor>
                        <f:facet name="output">
                            <h:outputText value="#{user.role}"
                                style="width:100px;display:block;"></h:outputText>
                        </f:facet>
                        <f:facet name="input">
                            <p:selectOneMenu value="#{user.role}" style="width:95px" rendered="#{user.enabled eq true}" >
                                <f:selectItems
                                    value="#{usersBean.rolesMap[user.dept.deptId]}"
                                    var="role" itemLabel="#{role}" itemValue="#{role}"></f:selectItems>
                            </p:selectOneMenu>
                            <h:outputText value="#{user.role}" rendered="#{user.enabled eq false}"/>
                        </f:facet>
                    </p:cellEditor>
                </p:column>
                <p:column headerText="Manager" style="width:100px;">
                    <p:cellEditor>
                        <f:facet name="output">
                            <h:outputText
                                value="#{user.usermanagerByUserId.userByManagerId.userLoginName}"
                                style="width:100px;display:block;"></h:outputText>
                        </f:facet>
                        <f:facet name="input">
                            <p:selectOneMenu rendered="#{user.enabled eq true}" 
                                value="#{usersBean.managerIdMap[user.userId]}"
                                style="width:95px;">
                                <f:selectItems
                                    value="#{usersBean.managerMap[user.dept.deptId]}"
                                    var="manager" itemLabel="#{manager.userLoginName}"
                                    itemValue="#{manager.userId}"></f:selectItems>
                            </p:selectOneMenu>
                            <h:outputText
                                value="#{user.usermanagerByUserId.userByManagerId.userLoginName}" rendered="#{user.enabled eq false}"/>
                        </f:facet>
                    </p:cellEditor>
                </p:column>
                <p:column headerText="Email" style="width:100px;">
                    <p:cellEditor>
                        <f:facet name="output">
                            <h:outputText value="#{user.email}"
                                style="width:100px;display:block;"></h:outputText>
                        </f:facet>
                        <f:facet name="input">
                            <p:inputText value="#{user.email}" style="width:95px;"
                                validatorMessage="Enter Valid Email" maxlength="100">
                                <f:validateRegex
                                    pattern="^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$" />
                            </p:inputText>
                        </f:facet>
                    </p:cellEditor>

                </p:column>
                <p:column headerText="Last Login" style="width:60px;">
                    <h:outputText value="#{user.lastLogin}"
                        style="width:60px;display:block;">
                        <f:convertDateTime pattern="dd/MM/yyyy"></f:convertDateTime>
                    </h:outputText>
                </p:column>
                <p:column headerText="Status" style="width:40px;">
                    <p:cellEditor>
                        <f:facet name="output">
                            <h:outputText value="Enable" rendered="#{user.enabled eq true}"></h:outputText>
                            <h:outputText value="Disable"
                                rendered="#{user.enabled eq false}"></h:outputText>
                        </f:facet>
                        <f:facet name="input">
                            <p:selectBooleanCheckbox value="#{user.enabled}" />
                        </f:facet>
                    </p:cellEditor>
                </p:column>
                <p:column headerText="Locked" style="width:40px;">
                    <p:cellEditor>
                        <f:facet name="output">
                            <h:outputText value="Locked" rendered="#{user.locked eq true}"
                                style="width:40px;display:block;" />
                            <h:outputText value="UnLocked" style="width:40px;display:block;"
                                rendered="#{user.locked eq false}"></h:outputText>
                        </f:facet>
                        <f:facet name="input">
                            <p:selectBooleanCheckbox value="#{user.locked}" />
                        </f:facet>
                    </p:cellEditor>
                </p:column>
                <p:column headerText="Edit" style="width:30px;">
                    <p:rowEditor>
                    </p:rowEditor>
                </p:column>
            </p:dataTable>

        </h:panelGroup>
    </h:form>
</div>

0 个答案:

没有答案