0

所以我在 jsf 应用程序中有以下数据表。

     <rich:extendedDataTable border="0px"
                value="#{package.packageSearchList}" var="o" id="mainTable"
                rowClass="test" styleClass="mainTable" rows="5"
                selection="#{package.selection}" selectionMode="single"
                iterationStatusVar="packageIndex">

                <a4j:ajax execute="@firstForm" event="selectionchange"
                    listener="#{package.selectionListener}"
                    render=":secondForm :res" />

                <rich:column>
                    <f:facet name="header" class="header">ID</f:facet>
                    <h:outputText value="#{o.packageID}" />
                </rich:column>

                <rich:column>
                    <f:facet name="header" class="header">Product Name</f:facet>
                    <h:outputText value="#{o.name}" />
                </rich:column>

                <rich:column>
                    <f:facet name="header" class="header">Cost</f:facet>
                    <h:outputText value="#{o.cost}" />
                </rich:column>

                <rich:column>
                    <f:facet name="header" class="header">Duration</f:facet>
                    <h:outputText value="#{o.duration}" />
                </rich:column>
                <rich:column>
                    <f:facet name="header" class="header">Size</f:facet>
                    <h:outputText value="#{o.size}" />
                </rich:column>
                <rich:column headerClass="blank">
                    <a4j:commandButton action="#{package.deletePackage}"
                        render="maintable :firstForm" value="&emsp;Remove"
                        styleClass="fancyButtonRemove">
                        <f:setPropertyActionListener target="#{package.editedPackage}"
                            value="#{o}" />
                    </a4j:commandButton>
                </rich:column>
            </rich:extendedDataTable>
            <rich:dataScroller id="tableDataScroller" maxPages="2"
                for="mainTable" renderIfSinglePage="true">
            </rich:dataScroller>

如果用户选择其中之一,则所选对象中包含的信息将显示在输出面板中。这在 Chrome、Firefox、IE8 和 IE7 上运行良好,但在 IE9 或 IE10 上不起作用,我不知道为什么。后端没有抛出错误,也没有抛出异常。它也适用于早期版本的 IE,这让我非常困惑。

奇怪的是不是所有的东西都会破坏它。我可以选择表中的任何内容,它选择得很好并进行后端调用,但是它不会呈现输出面板,当我尝试删除记录或使用 datascroller 更改扩展数据表时,整个事情都会中断。选择将不再起作用,任何按钮都会失去所有响应能力。

作为一种解决方法,我尝试使用以下代码强制浏览器默认为 IE8 文档模式,但无论我做什么,我的 IE 都会在 IE9 中不断加载。

    <meta http-equiv="x-ua-compatible" content="IE=8" />

我正在使用 Richfaces 4.3.2 Final 和 Mojarra 2.0。有人对可能发生的事情有任何想法吗?任何帮助将不胜感激,谢谢。

4

1 回答 1

0

好的,事实证明这与我的 Mojarra 版本有关,我通过升级到 2.1.9 版本来修复它。我需要在我的 pom 文件中使用以下内容覆盖我的 Javax.faces 依赖项。

   <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>2.1.9</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.1.9</version>
        <scope>compile</scope>
    </dependency>

我希望这对其他人有帮助。

于 2013-09-17T09:32:05.627 回答