javaicefacesjspx

Missing start tag for "ice:column"


With the following jspx code

<jsp:root jsfc="f:view" xmlns:jsp="http://java.sun.com/JSP/Page"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ice="http://www.icesoft.com/icefaces/components"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:c="http://java.sun.com/jstl/core"
    xmlns:fn="http://java.sun.com/jsp/jstl/functions">

    <ui:composition template="WEB-INF/includes/template/main-template.jspx"
        xmlns="http://www.w3.org/1999/xhtml"
        xmlns:ui="http://java.sun.com/jsf/facelets"
        xmlns:ice="http://www.icesoft.com/icefaces/components"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:m="http://www.tag.com/jsf">

        <!-- params for page titles-->
        <ui:define name="content">
            <ice:form id="iceForm" partialSubmit="true">
                <ice:panelGroup styleClass="error">
                    <ice:messages id="error" />
                </ice:panelGroup>
                <ice:panelGroup styleClass="progress"
                    rendered="#{login.inProgress and exportselection.renderView}">

                    <ice:panelGroup style="margin-top: 3px">
                        <ice:outputProgress id="buildView" labelPosition="embed"
                            labelComplete="completed" indeterminate="false"
                            rendered="#{login.inProgress and exportselection.renderView}"
                            value="#{exportselection.progressStatus}" />
                        <ice:panelGroup styleClass="cellTopRight">
                            <ice:panelGrid columns="2" cellspacing="10">
                                <ice:commandButton value="#{msgs['xliff.button.cancel1']}"
                                    id="resetbutton" action="export"
                                    rendered="#{login.inProgress and exportselection.renderView}"
                                    actionListener="#{exportselection.cancel}" />
                                <ice:commandButton value="#{msgs['xliff.button.next']}"
                                    id="nextger1"
                                    rendered="#{login.inProgress and exportselection.renderView}"
                                    action="#{exportselection.forward}"
                                    disabled="#{login.inProgress}"
                                    actionListener="#{exportselection.showExportView}" />
                            </ice:panelGrid>
                        </ice:panelGroup>
                    </ice:panelGroup>
                </ice:panelGroup>
                <ice:panelGrid styleClass="datapaging"
                    rendered="#{!exportselection.renderView}">

                    <ice:dataTable id="texts" var="text"
                        value="#{generatexliff.showTexts}" scrollable="true"
                        scrollHeight="300px" styleClass="dataPaginatorDataTable"
                        columnWidths="300px,200px,200px,100px">

                        <!-- ice:column>
                        <f:facet name="header">
                            <ice:outputText id="column1"
                                            value="#{msgs['export.view.date']}"/>
                        </f:facet>
                        <ice:outputText id="date" 
                                        value="#{text.showDate}"/>
                   </ice:column-->

                        <ice:column>
                            <f:facet name="header">
                                <ice:outputText id="column2" value="#{msgs['export.view.text']}" />
                            </f:facet>
                            <ice:outputText id="content" value="#{text.text}" />
                        </ice:column>

                        <ice:column>
                            <f:facet name="header">
                                <ice:outputText id="column3"
                                    value="#{msgs['export.view.master']}" />
                            </f:facet>
                            <ice:outputText id="master" value="#{text.appearInString}" />
                        </ice:column>
                        <ice:column>
                            <f:facet name="header">
                                <ice:outputText id="column4"
                                    value="#{msgs['export.view.comment']}" />
                            </f:facet>
                            <ice:inputText id="comment" size="40"
                                value="#{text.transComment}" />
                        </ice:column>
                        <ice:column>
                            <f:facet name="header">
                                <ice:outputText id="column5"
                                    value="#{msgs['export.view.export']}" />
                            </f:facet>
                            <ice:selectBooleanCheckbox id="select" value="#{text.selected}"
                                partialSubmit="true" />
                        </ice:column>
                    </ice:dataTable>
                    <ice:panelGrid columns="5" cellpadding="2px"
                        styleClass="datapaging">
                        <ice:commandButton id="first"
                            image="/images/css-images/arrow-first.gif"
                            actionListener="#{generatexliff.first}" />
                        <ice:commandButton id="previous"
                            image="/images/css-images/arrow-previous.gif"
                            actionListener="#{generatexliff.previous}" />
                        <ice:panelGroup>
                            <ice:outputText id="paging" value="Page" />
                            <ice:inputText id="currentPage" size="5"
                                value="#{generatexliff.currentPage}"
                                valueChangeListener="#{generatexliff.jump}" partialSubmit="true">
                                <f:validateLongRange></f:validateLongRange>
                            </ice:inputText>
                            <ice:outputText value=" of #{generatexliff.totalPage}" />
                        </ice:panelGroup>
                        <ice:commandButton id="next"
                            image="/images/css-images/arrow-next.gif"
                            actionListener="#{generatexliff.next}" />
                        <ice:commandButton id="last"
                            image="/images/css-images/arrow-last.gif"
                            actionListener="#{generatexliff.last}" />
                    </ice:panelGrid>
                    <ice:dataTable id="errorMessage" var="message" border="0"
                        value="#{generatexliff.messages}"
                        rendered="#{!exportselection.renderView and generatexliff.xliffAvailable}">
                        <ice:column>
                            <ice:outputText id="mess" styleClass="error" value="#{message}" />
                        </ice:column>
                    </ice:dataTable>

                    <ice:outputProgress id="export" labelPosition="embed"
                        labelComplete="completed" indeterminate="false"
                        value="#{generatexliff.progressStatus}"
                        rendered="#{!exportselection.renderView}" />
                    <ice:panelGrid columns="2" styleClass="xliffTopRight">
                        <ice:dataTable id="files" var="file"
                            value="#{generatexliff.xmlResources}" scrollable="true"
                            scrollHeight="100px"
                            rendered="#{!exportselection.renderView and generatexliff.xliffAvailable}"
                            styleClass="dataPaginatorDataTable" columnWidths="300px">
                            <ice:column>
                                <f:facet name="header">
                                    <ice:outputText value="#{msgs['xliff.output.download']}" />
                                </f:facet>
                                <ice:outputResource id="imgRsource" resource="#{file.file}"
                                    label="XLIFF - #{file.fileName}" fileName="#{file.fileName}"
                                    attachment="true" shared="false" />
                            </ice:column>
                        </ice:dataTable>
                        <ice:panelGrid columns="2" styleClass="cellTopRight"
                            rendered="#{!exportselection.renderView}">


                            <ice:commandButton value="#{msgs['xliff.button.cancel']}"
                                id="exportcancel" disabled="#{!login.inProgress}"
                                actionListener="#{generatexliff.cancel}" />
                            <ice:commandButton value="#{msgs['xliff.button.generate']}"
                                id="exportXliff" disabled="#{login.inProgress}"
                                actionListener="#{generatexliff.generateXLIFF}" />

                        </ice:panelGrid>
                    </ice:panelGrid>
                </ice:panelGrid>
            </ice:form>
        </ui:define>
    </ui:composition>
</jsp:root>

Eclipse gives me the error

Missing start tag for "ice:column"

On the line

xmlns:fn="http://java.sun.com/jsp/jstl/functions">

Red-squiggly underlining n.com/jsp/jst. What is happening there? How can I fix it? The project builds fine apart from that error...?

Edit: The project has the following facets:

I tried disabling the validation on JSF and re-enabling it again, but the error comes back as soon as I build again.


Solution

  • This is wrong

                       <!-- ice:column>
                       <f:facet name="header">
                           <ice:outputText id="column1"
                                           value="#{msgs['export.view.date']}"/>
                       </f:facet>
                       <ice:outputText id="date" 
                                       value="#{text.showDate}"/>
                  </ice:column-->
    

    Comment code is written as:

    <!-- Comment here -->
    
    OR
    
    <!--
    Comment
    over
    multiple lines
    -->
    

    The error is correct, you have no opening tag for the ice:column. You start the comment line, but then you close it at the end of the first line because you never put in an opening < for the ice:column. So when it reaches the > at the end of the line, the program assumes that this is the closing tag for the comment line.

    I believe that this would work to comment out code over multiple lines:

                       <!-- 
                       <ice:column>
                       <f:facet name="header">
                           <ice:outputText id="column1"
                                           value="#{msgs['export.view.date']}"/>
                       </f:facet>
                       <ice:outputText id="date" 
                                       value="#{text.showDate}"/>
                       </ice:column>
                       -->
    

    I realise this is an old thread, but I thought I would add an answer in case anyone else stumbles across this.