Компонент дерева JSF Тринидад не расширяется - PullRequest
0 голосов
/ 26 апреля 2011

Я использую реализацию JSF Mojarra 2.0.3 вместе с бета-фреймворком Apache Trinidad 2.0.0, чтобы я мог использовать компонент дерева.

Я следовал руководству разработчика относительнокомпонент дерева, а также учебник Oracle ADF , но мне не удалось воспроизвести пример Oracle.

Компонент дерева визуализируется, но не разворачивается / разворачивается.Я вижу только корневые элементы.

Играя с компонентом демонстрационного дерева apache , я заметил, что страница не перезагружается.Кажется, Ajax управляется.

Так что я думаю, что моя проблема в том, что у меня есть свой компонент дерева в теге JSF формы.В любом случае, если я не помещаю компонент дерева в тег ah: form, компонент дерева не отображается.

При добавлении компонента дерева в форму я также заметил, что при попытке развернутьузел из дерева, вся страница перезагрузится.Это может объяснить, почему дерево не расширяется.

Кто-нибудь имеет представление о компоненте дерева Тринидад?

Кстати, компонент дерева - единственный компонент Тринидада, который я использую.Я не знаю, является ли это какой-то несовместимостью с компонентами реализации JSF Mojarra по умолчанию.

Все еще не работает.Дерево отображается с корневыми элементами, но они не раскрываются при щелчке мышью.Теперь только один и теги в окончательном HTML-документе.Вот мои xhtml:

header.xhtml:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets">

    <div id="header" class="header">
        <div id="header_title">
            <p>#{msg.app_title}</p>
        </div>
        <div id="clear"/>
    </div>

</ui:composition>

footer.xhtml:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets">

            <div id="footer" class="footer">#{msg.app_footer}</div>

</ui:composition>

template.xhtml:

<tr:document xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:tr="http://myfaces.apache.org/trinidad"
      title="#{msg.app_title}">

    <div id="header">
        <ui:include src="/WEB-INF/templates/header.xhtml"/>
    </div>

    <center>
    <div id="content">
      <ui:insert name="content">
      </ui:insert>
    </div>
    </center>

    <div id="footer">
        <ui:include src="/WEB-INF/templates/footer.xhtml"/>
    </div>
</tr:document>

login.xhtml:

<ui:composition template="/WEB-INF/templates/template.xhtml"
                        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:tr="http://myfaces.apache.org/trinidad">

    <ui:define name="content">
        <tr:form id="login_form">
            <h:panelGrid columns="3">
                <h:outputText value="#{msg.username}"></h:outputText>
                <h:inputText id="username" value="#{loginBean.username}" required="true"/>
                <h:message for="username" class="error_message"/>

                <h:outputText value="#{msg.password}"></h:outputText>
                <h:inputSecret id="password" value="#{loginBean.password}" required="true">
                    <f:validator validatorId="checkUserValidator"/>
                    <f:attribute name="usernameId" value="username"/>
                </h:inputSecret>

                <h:message for="password" class="error_message"/>
            </h:panelGrid>
           <h:commandButton value="#{msg.login}" action="#{loginBean.checkUser}"/>

           <tr:panelBox background="transparent">        
                <tr:tree var="menu" value="#{testTree.tree}">
                    <f:facet name="nodeStamp">
                        <tr:goLink text="#{menu.name}"/>
                    </f:facet>
                </tr:tree>
              </tr:panelBox>

        </tr:form>
        <h:outputLink value="/MyApp/faces/newAccount.xhtml">
            <h:outputText value="#{msg.create_account}"></h:outputText>
        </h:outputLink>
    </ui:define>
</ui:composition>

TestTree.java:

открытый класс TestTree {

private TreeModel tree;


public TestTree(){

    Person john = new Person("John Smith");
    Person kim = new Person("Kim Smith");
    Person tom = new Person("Tom Smith");
    Person ira = new Person("Ira Wickrememsinghe");
    Person mallika = new Person("Mallika Wickremesinghe");

    john.getKids().add(kim);
    john.getKids().add(tom);
    ira.getKids().add(mallika);

    // create the list of root nodes:
    List people = new ArrayList();
    people.add(john);
    people.add(ira);

    tree = new ChildPropertyTreeModel(people, "kids");
}

public TreeModel getTree(){
    return tree;
}

public void setTree(TreeModel tree){
    this.tree = tree;
}

}


Еще один вопрос, используя этот случай, где я должен указать свой файл CSS?Я не нашел никакого атрибута для тега документа.Как получить доступ и теги, сгенерированные Trinidad?

1 Ответ

0 голосов
/ 27 апреля 2011

Я использую компонент дерева Тринидад (Тринидад 1.2.14) на jsf1.2 без каких-либо проблем.Я не знаю, как Тринидад работает вместе с реализацией mojarra.

Мой сайт выглядит так, как описано в Документация по тегам :

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://myfaces.apache.org/trinidad" prefix="tr" %>
<%@ taglib uri="http://myfaces.apache.org/trinidad/html" prefix="trh" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>

<f:view>

<tr:document>
<tr:form id="frmMain">
  <tr:panelBox background="transparent">        
    <tr:tree var="menu" value="#{myBean.model}">
        <f:facet name="nodeStamp">
            <tr:goLink 
                text="#{menu.label}" 
                destination="#{menu.address}"
                targetFrame="Data"/>
        </f:facet>
    </tr:tree>
  </tr:panelBox>
</tr:form>
</tr:document>
</f:view>

Возможно, это помогаетвам, чтобы сузить проблему.

...