使用ace:cellEditor编辑ICEFaces ace:datatable时出现NullPointerExcept



我使用的代码类似于这个精简的示例:

<h:form id="form">
   <ace:dataTable id="carTable"
                            value="#{dataTableRowEditing.cars}"
                            var="car">          
        <ace:column id="name" headerText="Name">
            <ace:cellEditor>
                <f:facet name="output">
                    <h:outputText id="nameCell" value="#{car.name}"/>
                </f:facet>
                <f:facet name="input">
                    <h:inputText id="nameInput" value="#{car.name}"/>
                </f:facet>
            </ace:cellEditor>
       </ace:column>
       <ace:column id="options" headerText="Options">
           <ace:rowEditor id="editor"/>
       </ace:column>
    </ace:dataTable>
</h:form>

在加载JSF页面时,我得到了以下错误:

com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException SEVERE: Error Rendering View[/index.xhtml]

在搜索这个错误时,我找到的一个解决方案是确保我有inputoutput的两个<f:facet>元素,但我已经有了这些元素。

对我有效的解决方案是在<html>标记中仔细检查我的xmlns属性。我有以下内容:

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:ace="http://www.icefaces.org/icefaces/components"
  xmlns:c="http://java.sun.com/jsp/jstl/core"
  xmlns:f="http://java.sun.com/jsf/composite"
    >

然而,xmlns:f="http://java.sun.com/jsf/composite"是不正确的。它应该是xmlns:f="http://java.sun.com/jsf/core。校正后的<html>标签如下所示:

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:ace="http://www.icefaces.org/icefaces/components"
  xmlns:c="http://java.sun.com/jsp/jstl/core"
  xmlns:f="http://java.sun.com/jsf/core"
    >

修复此问题后,错误得到解决,编辑功能正常工作。

相关内容

  • 没有找到相关文章

最新更新