我正在使用Primefaces TabMenu的JSF页面。我设法找到了这个post的一种可能的解决方案。到目前为止,这是解决方案:
主页:
<div id="settingsHashMapz" class="settingsHashMap" style="width:1150px; height:400px; position:absolute; top:20px; left:1px">
<p:tabMenu id="tabs" activeIndex="0" >
<p:menuitem value="General" url="/DCProfileTabGeneral.jsf" />
<p:menuitem value="Zones" url="/DCProfileTabZones.jsf" />
<p:menuitem value="UPS" url="/DCProfileTabUPS.jsf" />
</p:tabMenu>
</div>
标签中的JSF页面:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
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:p="http://primefaces.org/ui"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:head>
</h:head>
<h:body>
<ui:composition>
<h:panelGroup>
<h:form id="zones" >
<!-- The sortable data table -->
.................
<!-- The paging buttons -->
<h:commandButton styleClass="bimage" value="first" action="#{DCProfileTabZonesController.pageFirst}"
disabled="#{DCProfileTabZonesController.firstRow == 0}" >
<f:ajax render="@form" execute="@form"></f:ajax>
</h:commandButton>
....................
<!-- Set rows per page -->
<h:selectOneMenu id="setrows" value="#{DCProfileTabZonesController.rowsPerPage}" converter="javax.faces.Integer" maxlength="2">
<f:selectItem itemValue="5" itemLabel="5" />
<f:selectItem itemValue="10" itemLabel="10" />
<f:selectItem itemValue="20" itemLabel="20" />
<f:selectItem itemValue="50" itemLabel="50" />
<f:selectItem itemValue="100" itemLabel="100" />
<f:selectItem itemValue="200" itemLabel="200" />
<f:ajax render="@form" event="change" execute="@form" listener="#{DCProfileTabZonesController.pageFirst}" />
</h:selectOneMenu>
........................
</h:form>
</h:panelGroup>
</ui:composition>
</h:body>
</html>
我希望我解决表单问题。但我发现了这些问题:
当我点击h:commandButton
更改表格页面时,我会重定向到页面DCProfileTabZones.jsf
。我没有回到DatacenterProfile.jsf?id=1002#
页面。也许这是因为我使用h:commandButton
。
第二个问题来自h:selectOneMenu
。当我选择不同的号码时,我在Firebug中收到此错误消息:
ReferenceError: mojarra is not defined
function onchange(event) {
mojarra.ab(this, event, "valueChange", "@form", "@form");
}
请您告诉我如何解决问题。