我正在使用Netbeans IDE下的Primefaces组件在JSF上编写一个xhtml网页。我对p:inputSwitch标签有一个恼人的问题,当我部署我的web应用程序时,我的inputSwitch组件都没有显示出来。
Primefaces inputSwitch示例:https://www.primefaces.org/showcase/ui/input/inputSwitch.xhtml
My four inputSwitch components
的index.xhtml
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
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">
<f:view contentType="text/html">
<h:head>
<f:facet name="first">
<meta content='text/html; charset=UTF-8' http-equiv="Content-Type"/>
<title>Parcial 2: Controlar arduino desde bluetooth con JSF+PrimeFaces</title>
</f:facet>
<script>
function mostrarFormLeds() {
$("#formMinis").hide();
$("#formServos").hide();
$("#formLeds").show();
}
function mostrarFormMinis() {
$("#formLeds").hide();
$("#formServos").hide();
$("#formMinis").show();
}
function mostrarFormServos() {
$("#formMinis").hide();
$("#formLeds").hide();
$("#formServos").show();
}
</script>
</h:head>
<h:body>
<p:layout fullPage="true">
<p:layoutUnit position="north" size="100" resizable="true" closable="true" collapsible="true">
<h1 align="center">CENTRO DE CONTROL DE ARDUINO</h1>
</p:layoutUnit>
<p:layoutUnit position="south" size="100" closable="true" collapsible="true">
Footer
</p:layoutUnit>
<p:layoutUnit position="west" size="175" header="Menú de opciones" collapsible="true">
<h:form id="menuForm">
<p:menu>
<p:submenu label="Dispositivos">
<p:menuitem onclick="mostrarFormLeds()" value="LEDs" icon="ui-icon-lightbulb" ajax="true" />
<p:menuitem onclick="mostrarFormMinis()" value="Mini bombas" icon="ui-icon-pin-s" ajax="true"/>
<p:menuitem onclick="mostrarFormServos()" value="Servomotor" icon="ui-icon-gear" ajax="true"/>
<p:menuitem value="Themes" url="#" />
</p:submenu>
</p:menu>
</h:form>
</p:layoutUnit>
<p:layoutUnit position="center" >
<h:form id="formLeds" style="display:none;">
<p:growl id="msj-leds" autoUpdate="true" showDetail="true"/>
<p:growl id="msj-minis" autoUpdate="true" showDetail="true"/>
<p:growl id="msj-servos" autoUpdate="true" showDetail="true"/>
<h:panelGrid columns="2" style="margin-bottom:10px" cellpadding="5">
<!--Input Switches--------------------->
<p:inputSwitch value="#{ledsBean.led1}">
<p:ajax listener="#{ledsBean.mostrarMensaje}" update="msj-leds"/>
</p:inputSwitch>
<p:inputSwitch value="#{ledsBean.led2}">
<p:ajax listener="#{ledsBean.mostrarMensaje}" update="msj-leds"/>
</p:inputSwitch>
<p:inputSwitch value="#{ledsBean.led3}">
<p:ajax listener="#{ledsBean.mostrarMensaje}" update="msj-leds"/>
</p:inputSwitch>
<p:inputSwitch value="#{ledsBean.led4}">
<p:ajax listener="#{ledsBean.mostrarMensaje}" update="msj-leds"/>
</p:inputSwitch>
<!--Input Switches end--------------------->
</h:panelGrid>
</h:form>
<h:form id="formMinis" style="display:none;">
</h:form>
<h:form id="formServos" style="display:none;">
</h:form>
</p:layoutUnit>
</p:layout>
</h:body>
</f:view>
</html>
注意:我必须删除Netbeans默认的Primefaces(v 5.0)并将Primefaces 6.0添加为Maven依赖项,因为5.0版本没有inputSwitch标记。