编辑ICEFaces ace时的NullPointerException:使用ace:cellEditor的datatable

时间:2014-04-14 21:22:38

标签: jsf icefaces

我使用的代码类似于这个剥离的示例:

<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]

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

1 个答案:

答案 0 :(得分:0)

对我有用的解决方案是仔细检查xmlns标记中的<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/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"
    >

解决此问题后,错误已解决,编辑功能正常工作。