我正在使用JSF Mojarra 2.0.3實現以及Apache Trinidad 2.0.0 beta框架,以便我可以使用樹組件。JSF特立尼達樹組件不擴展
我跟着developers guide關於樹組件,以及Oracle ADF tutorial,但我沒有成功地複製Oracle示例。
樹組件獲取呈現,但它不展開/摺疊。我只能看到根元素。
玩apache demo tree component,我注意到該頁面沒有重新加載。它似乎是阿賈克斯管理。
所以我認爲我的問題是我有我的樹組件到表單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文件?我還沒有找到文檔標籤的任何屬性。我如何訪問和特立尼達生成的標籤?
你能告訴我你是如何指定你的身體和html標籤?我已將它們指定爲「
和」。這可能是問題嗎?關鍵是,遵循不同的JSF教程,我總是看到他們通常使用這種標籤,而不是「嗨,我編輯了我的答案。這是我的頁面的整個代碼。特立尼達的標籤生成。有關tr:文檔,請參閱Trinidad標籤文檔。是的,這可能是你的問題。嘗試一個僅包含特立尼達東西的簡單頁面,看看你的樹是否像預期的那樣工作。 –
lkdg
2011-04-27 12:36:06
我不太瞭解你的例子。我認爲這不是一個標準的xhtml網頁,是嗎?我在哪裏可以定義我的CSS和JavaScript資源?我沒有看到此任務的任何適當的文檔屬性。 – David 2011-04-27 15:36:34