Problem z renderowaniem części elementów w richfaces

0

Witam,
na potrzeby pewnego projektu chciałem włączyć do obsługi gui primefaces i richfaces. Dorzuciłem do /WEB-INF/lib biblioteki:

  • cssparser-0.9.5.jar
  • guava-11.0.2.jar
  • javax.faces.jar
  • jsr305-2.0.1.jar
  • richfaces-components-api-4.3.1.Final.jar
  • richfaces-components-ui-4.3.1.Final.jar
  • richfaces-core-api-4.3.1.Final.jar
  • richfaces-core-impl-4.3.1.Final.jar
  • sac-1.3.jar

Z działaniem primefaces nie ma najmniejszego problemu, natomiast kiedy z richfaces chcę użyć edytora, wyświetla mi się tylko pole tekstowe, a toolbar nie jest renderowany. Aktualnie działam na glassfishu 3. Sam kod jest to przykładowa próbka ze strony richfaces:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich">
    <h:body>
    <h:form>
        <rich:editor id="editor" toolbar="full" value="#{editorBean.value}" style="margin-bottom: 1em">
            <a4j:ajax event="change" render="panel" status="panelUpdateStatus" />
            <a4j:ajax event="dirty" render="panel" status="panelUpdateStatus">
                <a4j:attachQueue requestDelay="1000" />
            </a4j:ajax>
        </rich:editor>
         	
        <rich:panel id="panel">
            <f:facet name="header">
                Output from Editor
                <a4j:status name="panelUpdateStatus">
                    <f:facet name="start">
                        (Updating)
                    </f:facet>
                </a4j:status>
            </f:facet>
            <h:outputText escape="false" value="#{editorBean.value}" />
        </rich:panel>
 
 
    </h:form>
    </h:body>
</ui:composition>

Mój web.xml wygląda natomiast tak:

<?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_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>Internet shop</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  
<servlet>

   <servlet-name>Resource Servlet</servlet-name>

   <servlet-class>org.richfaces.webapp.ResourceServlet</servlet-class>

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

</servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>
  <servlet-mapping>

   <servlet-name>Resource Servlet</servlet-name>

   <url-pattern>/org.richfaces.resources/*</url-pattern>

</servlet-mapping>
  <context-param>
    <description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
  </context-param>
  <context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>resources.application</param-value>
  </context-param>
  <listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
  </listener>
</web-app>

Męczę ten problem od dłuższego czasu, ponieważ chciałbym użyć rich:panel i rich:editor. Czy ktoś z Was spotkał się z podobnym problemem i wie jak go rozwiązać?

0

Dodaj head.

<h:head>
	<title>Edytor</title>
</h:head>

Zamieniłbym takze tag ui:composition na html (jesli nie będzie to np. w jakimś szablonie) bo w tej chwili generowany kod html nie posiada tagu <html>.

0

Zmieniłem kod według Twoich instrukcji. Teraz wygląda on następująco:

<!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:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich">
    <h:head>
    	<title>Editor</title>
    </h:head>
    
    <h:body>
    <h:form>
        <rich:editor id="editor" toolbar="full" value="#{editorBean.value}" style="margin-bottom: 1em">
            <a4j:ajax event="change" render="panel" status="panelUpdateStatus" />
            <a4j:ajax event="dirty" render="panel" status="panelUpdateStatus">
                <a4j:attachQueue requestDelay="1000" />
            </a4j:ajax>
        </rich:editor>
         	
        <rich:panel id="panel">
            <f:facet name="header">
                Output from Editor
                <a4j:status name="panelUpdateStatus">
                    <f:facet name="start">
                        (Updating)
                    </f:facet>
                </a4j:status>
            </f:facet>
            <h:outputText escape="false" value="#{editorBean.value}" />
        </rich:panel>
 
 
    </h:form>
    </h:body>
</html>

Niestety nie zmieniło to niczego na wyjściu. Może pominąłem jakąś bibliotekę? Testowałem właśnie całość na jbossie i mam ten sam problem.

0

Jakieś inne elementy z richface'a działają?
Jeśli tak to weź wyczyść przeglądarkę i parę razy odśwież (ctrl + F5 w firefoxie) bo czasami ciężko załapuje.
Jeśli nie to szukałbym problemu w załadowaniu bibliotek.

U mnie powyższy kod śmiga.

0

Przeglądarka raczej odpada, już czyściłem cache. Testowałem na firefoxie i chrome. A czy te biblioteki, które wymieniłem to wszystkie wymagane? Może rzeczywiście coś jest nie tak przy ich ładowaniu. Zauważyłem jeden problem. W Properties/Deployment Assembly kiedy dodaję source:Maven dependencies deploy path:WEB-INF/lib, kliknę save, wyjdę a następnie wejdę do properties, to już nie mam tam mojego ostatniego wpisu. Może to jest problemem. Wiesz może w jakim pliku jest to trzymane żeby móc wymusić na nim ten wpis?

0

jakies inne elementy richfacesow tez Ci nie dzialaja?

co do Mavena to nie wiem.

co do bibliotek to ja mam jeszcze do samego jsfa podpiete mojarra-2.0.3-FCS gdzie sa dwa pliki jar: jsf-api.jar i jsf-impl.jar

0

Jeszcze ustawiałem rich:panel ale nie renderuje mi nagłówka. Mam mojarra 2.1.6, ale wewnątrz jest jedynie javax.faces.jar. Spróbuję zaraz dorzucić jeszcze te dwa pliki i zobaczę jak się wszystko zachowa :)

0

Ja w eclipsie nie wrzuciłem tych plików do folderu lib w web-inf tylko dodałem z właściwości. Inaczej nie chciało działać.

projekt -> properties -> Project facets -> Java Server Faces i wskazac mojarra'e

Edit:

Pisales ze z primeface dobrze dziala wiec chyba jsf sam dziala ok. Sprobuj jeszcze jakis przyklad czystego jsf odpalić.

0

Sam jsf działa mi dobrze, tak jak mówisz. W eclipse też mam wskazanego jara w properties/project facets. Podmieniłem jeszcze mojarrę na najnowszą 2.1.22. Problem musi leżeć jeszcze gdzieś indziej. Dziwna sprawa z tym jest, bo gdyby coś mu nie pasowało zupełnie to wyrzuciłby mi błąd jakiś a tutaj nie renderuje części elementów, dotyczy to czy to panel czy editor. Może spojrzę jeszcze czy w build path wszystko mi się zgadza i później w samym glassfishu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1