Facelets: страница не отображается - PullRequest
0 голосов
/ 15 января 2012

Я использую JSF 2 и RichFaces в Tomcat.Я новичок и пробую страницу, которую нашел здесь , но страница просто пустая (содержимое не отображается).Я пытаюсь добавить библиотеки Facelets 1.1, и страница отображается без проблем.Однако я где-то читал, что в JSF 2 библиотеки Facelets не нужны, поскольку они включены по умолчанию.Кроме того, когда я добавляю библиотеки Facelets, это влияет на другие страницы, где я начинаю получать сообщение типа ", библиотека поддерживает пространство имен: http://java.sun.com/jsf/html,, но тег name: head не определен" для страницы, которая работала нормально без библиотек.Я также включил следующие библиотеки в мой каталог / WEB-INF / lib:

  1. richfaces-api-3.3.3.Final.jar
  2. richfaces-impl-3.3.3.Final.jar
  3. richfaces-impl-jsf2-3.3.3.Final.jar
  4. richfaces-ui-3.3.3.Final.jar
  5. jstl.jar
  6. standard.jar

Для простоты мой код здесь (некоторые разделы удалены, чтобы он не был слишком длинным).

NB: Когда я вставляю какой-то простой текствнутри h: form или h: panelGrid, он отображается без проблем.

<ui:composition 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:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<style>
    .cols {
        vertical-align: top;
        }
</style>
<h:form id="form">
    <h:panelGrid columns="2" columnClasses="cols,cols" width="400">
        <rich:panelMenu style="width:200px" mode="ajax"
            iconExpandedGroup="disc" iconCollapsedGroup="disc"
            iconExpandedTopGroup="chevronUp" iconGroupTopPosition="right"
            iconCollapsedTopGroup="chevronDown">
            <rich:panelMenuGroup label="Group 1">
                <rich:panelMenuItem label="Item 1.1"
                    action="#{panelMenu.updateCurrent}">
                    <f:param name="current" value="Item 1.1" />
                </rich:panelMenuItem>
                <rich:panelMenuItem label="Item 1.2"
                    action="#{panelMenu.updateCurrent}">
                    <f:param name="current" value="Item 1.2" />
                </rich:panelMenuItem>
                <rich:panelMenuItem label="Item 1.3"
                    action="#{panelMenu.updateCurrent}">
                    <f:param name="current" value="Item 1.3" />
                </rich:panelMenuItem>
            </rich:panelMenuGroup>
        </rich:panelMenu>
        <rich:panel bodyClass="rich-laguna-panel-no-header">
            <a4j:outputPanel ajaxRendered="true">
                <h:outputText value="#{panelMenu.current} selected" id="current" />
            </a4j:outputPanel>
        </rich:panel>
    </h:panelGrid>
</h:form>

Ответы [ 2 ]

0 голосов
/ 10 июля 2012

В ваших библиотеках есть конфликт библиотек, но я не уверен, что это связано с проблемой, на которую вы ссылаетесь.

В вашем проекте НЕ должно быть обеих следующих библиотек:

  • richfaces-impl-3.3.3.Final.jar
  • richfaces-impl-jsf2-3.3.3.Final.jar

Они включают аналогичный наборклассы.Если вы используете JSF 2, удалите richfaces-impl-3.3.3.Final.jar из вашего пути к классам.

0 голосов
/ 15 января 2012

Вы добавили библиотеки jsf 2.0?

<dependency>
  <groupId>javax.faces</groupId>
  <artifactId>javax.faces-api</artifactId>
  <version>2.1</version>
  <scope>provided</scope>

И настроил ли ваш веб XML такой?

<servlet>

<servlet-name>Faces Servlet</servlet-name>

<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

<load-on-startup>1</load-on-startup>

<servlet-name>Faces Servlet</servlet-name>

<url-pattern>*.jsf</url-pattern>

<servlet-name>Faces Servlet</servlet-name>

<url-pattern>/*</url-pattern>

...