我正在使用JSF Mojarra 2.0.3实现以及Apache Trinidad 2.0.0 beta框架,因此我可以使用树组件。
关于树组件以及Oracle ADF developers guide我已经关注tutorial,但我没有成功复制Oracle示例。
树组件被渲染,但它不会展开/折叠。我只能看到根元素。
使用apache demo tree component,我注意到页面没有重新加载。它似乎是ajax管理。
所以我认为我的问题是我将树组件放入表单JSF标记中。无论如何,如果我没有将树组件放入h:form标签中,则不会渲染树组件。
将树组件嵌入到表单中,我还注意到当我尝试从树中扩展节点时,整个页面会重新加载。这可以解释为什么树没有扩张。
任何人都有关于特立尼达树组件的线索?
顺便说一句,树组件是我正在使用的唯一Trinidad组件。我不知道它是否与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>
所引用:
<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文件?我没有找到文件标签的任何属性。我如何访问特立尼达生成的标签?
答案 0 :(得分:0)
我在jsf1.2上使用trinidad树组件(trinidad 1.2.14)没有任何问题。我不知道特立尼达如何与mojarra实施一起工作。
我的网站看起来像这样,如Tag Documentation:
中所述<%@ 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>
这可能会帮助您缩小问题范围。