Я пытаюсь использовать Primefaces TabView (Primefaces 5.0, Netbeans 8.2, JSF 2.3.2) в шаблоне. Однако, когда он загружается, он загружается как список интерактивных ссылок со всей информацией о вкладках под ним. Изображение, показывающее проблему Вот моя главная страница указателя:
<!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://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<head>
</head>
<h:body>
<h:form>
<h1>Select table to interact with:</h1>
<h:selectOneMenu value="#{eJBTest.table}" onchange="submit()" valueChangeListener="#{eJBTest.loadTemplate}">
<f:selectItem itemValue="default" itemLabel="Select One"/>
<f:selectItem itemValue="supplier" itemLabel="Supplier"/>
<f:selectItem itemValue="part" itemLabel="Part"/>
<f:selectItem itemValue="sp" itemLabel="SP"/>
</h:selectOneMenu>
<ui:include src="#{eJBTest.template}"/>
</h:form>
</h:body>
</html>
Вот метод loadTemplate:
public void loadTemplate(ValueChangeEvent event) throws IOException {
System.out.println("Loading Template");
table = event.getNewValue().toString();
template = "/template/" + table + ".xhtml";
editTemplate = "/template/funct/" + table + "Edit.xhtml";
newTemplate = "/template/funct/" + table + "New.xhtml";
deleteTemplate = "/template/funct/" + table + "Delete.xhtml";
listTemplate = "/template/funct/" + table + "List.xhtml";
FacesContext.getCurrentInstance().getExternalContext().redirect("index.xhtml");
}
и одна из вкладок, которые я пытаюсь загрузить:
<h:body>
<ui:composition>
<p:tabView id="tabView" activeIndex="#{eJBTest.activeSIndex}" dynamic="true">
<p:tab id="new" title="New">
<h:outputText value="Supplier Id: "/><h:inputText value="#{eJBTest.supId}"/><br/>
<h:outputText value="Supplier Name: "/><h:inputText value="#{eJBTest.name}"/><br/>
<h:outputText value="Supplier Status: "/><h:inputText value="#{eJBTest.status}"/><br/>
<h:outputText value="Supplier City: "/><h:inputText value="#{eJBTest.city}"/><br/>
<h:commandButton value="Add Supplier" action="#{eJBTest.createNewSupplier()}"/><br/>
</p:tab>
<p:tab id="edit" title="Edit">
<h:selectOneMenu value="#{eJBTest.keyValue}" valueChangeListener="#{eJBTest.loadSupplier}" onchange="submit()">
<f:selectItems value="#{eJBTest.getSupplierId()}"/>
</h:selectOneMenu><br/>
<div id="text">
<h:outputText value="Supplier Name:"/><h:inputText value="#{eJBTest.name}"/><br/>
<h:outputText value="Supplier Status:"/><h:inputText value="#{eJBTest.status}"/><br/>
<h:outputText value="Supplier City:"/><h:inputText value="#{eJBTest.city}"/><br/>
<h:commandButton value="Edit" action="#{eJBTest.editSupplier()}"/>
</div>
</p:tab>
<p:tab id="delete" title="Delete">
<h:selectOneMenu value="#{eJBTest.keyValue}">
<f:selectItems value="#{eJBTest.getSupplierId()}"/>
</h:selectOneMenu>
<h:commandButton value="Delete" action="#{eJBTest.deleteSupplier()}"/>
<h:outputText value="#{eJBTest.message}"/>
</p:tab>
<p:tab id="list" title="List">
<h:outputText value="#{eJBTest.supplierData.toString()}"/>
</p:tab>
</p:tabView>
</ui:composition>
</h:body>
Все три шаблона в настоящее время делают это, где они работали раньше. Я понятия не имею, что я сделал, чтобы вызвать это.