0

I am trying to create a simple UI using JSF 1.2 (my client has been using this version for years and the existing application runs this version - so unable to move to 2.x). The UI is for uploading an excel file and displaying the contents on a datatable. I am using JSF 1.2. I tried doing this using a JSP and everything works fine. Now i tried to move to XHTML. When I access the Application URL, IE (v8) does not render the JSF page - instead it opens up a dialog box prompting Open/Save option. With Chrome, I see only the Head section of my XHTML rendered. The remaining portion is not. I have provided the following here:

web.xml the xhtml file view source from Chrome

Can someone point me to what/where I am doing wrong?

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>DEMSFileUpload</display-name>
  <welcome-file-list>
    <welcome-file>awardwinners.jsf</welcome-file>
  </welcome-file-list>
  <context-param>
    <param-name>com.sun.faces.enableRestoreView11Compatibility</param-name>
    <param-value>true</param-value>
  </context-param>
      <context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.xhtml</param-value>
    </context-param>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>
  <filter>
    <filter-name>extensionsFilter</filter-name>
    <filter-class>
            org.apache.myfaces.webapp.filter.ExtensionsFilter
        </filter-class>
    <init-param>
      <param-name>uploadMaxFileSize</param-name>
      <param-value>1000m</param-value>
    </init-param>
    <init-param>
      <param-name>uploadThresholdSize</param-name>
      <param-value>10000k</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>extensionsFilter</filter-name>
    <url-pattern>*.jsf</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>extensionsFilter</filter-name>
    <url-pattern>/faces/*</url-pattern>
  </filter-mapping>
</web-app>

my XHTML file:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.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:x="http://myfaces.apache.org/tomahawk">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<link href="dems.css" rel="stylesheet" type="text/css"></link>
<title>DEMS PIA/AIM Award Winners Upload</title>
</head>
<body>
    <h3
        style="font-family: Arial, Verdana, Helvetica; font-size: 12px; color: #FFFFFF; font-weight: bold; text-decoration: none; text-align: left; background-color: #669999; cursor: none; width: 950px;">
        PIA/AIM Award Winners Upload</h3>
    <h:form enctype="multipart/form-data">
        <h:panelGrid border="0" columns="3">
            <h:outputText value="File " styleClass="txt"></h:outputText>
            <x:inputFileUpload id="file" value="#{fileUpload.uploadedFile}"
                required="false" size="40" />
            <h:commandButton action="#{fileUpload.upload}" value="Upload"></h:commandButton>
        </h:panelGrid>

        <h:dataTable value="#{fileUpload.listFromSheet}" var="awardwinner"
            styleClass="w950" headerClass="txt cjHeader alignLeft"
            rowClasses="dataTableRow,alternateDataTableRow"
            style="border-spacing: 0px;" frame="box">

            <h:column>
                <f:facet name="header">
                    <h:outputText style="padding-left: 5px" value="Center Id" />
                </f:facet>
                <h:outputText style="padding-left: 5px" styleClass="txt"
                    value="#{awardwinner.centerId}" />
            </h:column>

            <h:column>
                <f:facet name="header">
                    <h:outputText value="Employee Id" />
                </f:facet>
                <h:outputText styleClass="txt" value="#{awardwinner.employeeID}" />
            </h:column>

            <h:column>
                <f:facet name="header">
                    <h:outputText value="Position Id" />
                </f:facet>
                <h:outputText styleClass="txt" value="#{awardwinner.positionID}" />
            </h:column>

            <h:column>
                <f:facet name="header">
                    <h:outputText value="Line Make" />
                </f:facet>
                <h:outputText styleClass="txt" value="#{awardwinner.lineMake}" />
            </h:column>

            <h:column>
                <f:facet name="header">
                    <h:outputText value="Award Year" />
                </f:facet>
                <h:outputText styleClass="txt" value="#{awardwinner.awardYear}" />
            </h:column>

            <h:column>
                <f:facet name="header">
                    <h:outputText value="Achieved Level" />
                </f:facet>
                <h:outputText styleClass="txt" value="#{awardwinner.achievedLevel}" />
            </h:column>

            <h:column>
                <f:facet name="header">
                    <h:outputText value="Awards" />
                </f:facet>
                <h:outputText styleClass="txt" value="#{awardwinner.awards}" />
            </h:column>

        </h:dataTable>
    </h:form>

</body>
</html>

View --> Source from Chrome:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.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:x="http://myfaces.apache.org/tomahawk">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<link href="dems.css" rel="stylesheet" type="text/css"></link>
<title>DEMS PIA/AIM Award Winners Upload</title>
</head>
<body>
    <h3
        style="font-family: Arial, Verdana, Helvetica; font-size: 12px; color: #FFFFFF; font-weight: bold; text-decoration: none; text-align: left; background-color: #669999; cursor: none; width: 950px;">
        PIA/AIM Award Winners Upload</h3>
    <h:form enctype="multipart/form-data">
        <h:panelGrid border="0" columns="3">
            <h:outputText value="File " styleClass="txt"></h:outputText>
            <x:inputFileUpload id="file" value="#{fileUpload.uploadedFile}"
                required="false" size="40" />
            <h:commandButton action="#{fileUpload.upload}" value="Upload"></h:commandButton>
        </h:panelGrid>

        <h:dataTable value="#{fileUpload.listFromSheet}" var="awardwinner"
            styleClass="w950" headerClass="txt cjHeader alignLeft"
            rowClasses="dataTableRow,alternateDataTableRow"
            style="border-spacing: 0px;" frame="box">

            <h:column>
                <f:facet name="header">
                    <h:outputText style="padding-left: 5px" value="Center Id" />
                </f:facet>
                <h:outputText style="padding-left: 5px" styleClass="txt"
                    value="#{awardwinner.centerId}" />
            </h:column>

            <h:column>
                <f:facet name="header">
                    <h:outputText value="Employee Id" />
                </f:facet>
                <h:outputText styleClass="txt" value="#{awardwinner.employeeID}" />
            </h:column>

            <h:column>
                <f:facet name="header">
                    <h:outputText value="Position Id" />
                </f:facet>
                <h:outputText styleClass="txt" value="#{awardwinner.positionID}" />
            </h:column>

            <h:column>
                <f:facet name="header">
                    <h:outputText value="Line Make" />
                </f:facet>
                <h:outputText styleClass="txt" value="#{awardwinner.lineMake}" />
            </h:column>

            <h:column>
                <f:facet name="header">
                    <h:outputText value="Award Year" />
                </f:facet>
                <h:outputText styleClass="txt" value="#{awardwinner.awardYear}" />
            </h:column>

            <h:column>
                <f:facet name="header">
                    <h:outputText value="Achieved Level" />
                </f:facet>
                <h:outputText styleClass="txt" value="#{awardwinner.achievedLevel}" />
            </h:column>

            <h:column>
                <f:facet name="header">
                    <h:outputText value="Awards" />
                </f:facet>
                <h:outputText styleClass="txt" value="#{awardwinner.awards}" />
            </h:column>

        </h:dataTable>
    </h:form>

</body>
</html>
  • Stock JSF 1.2 doesn't support facelets – kolossus Dec 29 '14 at 20:25
  • So, does that mean I cant use XHTML in 1.2? I am not using any servlet-mapping in web.xml - as i understand that causes an infinite loop. – Jerrus2003 Dec 30 '14 at 13:12
  • I don't know about the infinite loop, but a short search will show you that out of the box, you can't use facelets with JSF-1.2. You could manually install the facelet processing jar, but that's probably quite error-prone – kolossus Dec 30 '14 at 14:49

0 Answers0