Here's a simple MCVE
demo.xhml
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:demo="http://java.sun.com/jsf/composite/demo"
xml:lang="it" lang="it"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui">
<f:view contentType="text/html">
<h:head>
<f:facet name="first">
<meta charset='utf-8'/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DEMO</title>
</f:facet>
</h:head>
<h:body>
<h:form id="form">
<div class="ui-fluid">
<div class="ui-grid ui-grid-responsive">
<div class="ui-grid-row">
<div class="ui-grid-col-6">
<p:panel header="1"
toggleable="true">
<p:panelGrid columns="2"
columnClasses="ui-grid-col-2 right,ui-grid-col-4"
layout="grid"
styleClass="ui-panelgrid-blank">
<p:outputLabel for="firstName" value="First Name"/>
<h:panelGroup>
<h:outputText id="firstName"/>
<p:message for="firstName"/>
</h:panelGroup>
</p:panelGrid>
</p:panel>
</div>
<div class="ui-grid-col-6">
<p:panel header="2" toggleable="true">
<p:panelGrid columns="4"
columnClasses="ui-grid-col-2 right,ui-grid-col-4,ui-grid-col-2 right,ui-grid-col-4"
layout="grid"
styleClass="ui-panelgrid-blank">
<p:outputLabel for="memberCode" value="Member Code"/>
<h:panelGroup>
<h:outputText id="memberCode"/>
<p:message for="memberCode"/>
</h:panelGroup>
</p:panelGrid>
</p:panel>
</div>
</div>
<div class="ui-grid-row">
<div class="ui-grid-col-6">
<p:panel header="3" toggleable="true">
<demo:iDemo/>
</p:panel>
</div>
<div class="ui-grid-col-6">
<p:panel header="4" toggleable="true">
<p:panelGrid columns="2"
columnClasses="ui-grid-col-2 right,ui-grid-col-4"
layout="grid"
styleClass="ui-panelgrid-blank">
<p:outputLabel for="xxx" value="XXX"/>
<h:panelGroup>
<h:outputText id="xxx"/>
<p:message for="xxx"/>
</h:panelGroup>
</p:panelGrid>
</p:panel>
</div>
</div>
</div>
</div>
</h:form>
</h:body>
</f:view>
</html>
And iDemo.xhtml under resources/demo
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="it" lang="it"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:composite="http://java.sun.com/jsf/composite">
<f:view contentType="text/html">
<h:head/>
<h:body>
<composite:interface>
</composite:interface>
<composite:implementation>
<div class="ui-fluid">
<p:panelGrid columns="4"
columnClasses="ui-grid-col-2 right,ui-grid-col-4,ui-grid-col-2 right,ui-grid-col-4"
layout="grid"
styleClass="ui-panelgrid-blank">
<p:outputLabel for="telNum" value="Phone number"/>
<h:panelGroup>
<p:inputText id="telNum"/>
<p:message for="telNum"/>
</h:panelGroup>
</p:panelGrid>
</div>
</composite:implementation>
</h:body>
</f:view>
</html>
And here's the HTML produced
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DEMO</title>
<link type="text/css" rel="stylesheet" href="/loyalty/javax.faces.resource/theme.css.xhtml?ln=primefaces-aristo"/>
<link type="text/css" rel="stylesheet"
href="/loyalty/javax.faces.resource/fa/font-awesome.css.xhtml?ln=primefaces&v=5.3-SNAPSHOT"/>
<link type="text/css" rel="stylesheet"
href="/loyalty/javax.faces.resource/primefaces.css.xhtml?ln=primefaces&v=5.3-SNAPSHOT"/>
<script type="text/javascript"
src="/loyalty/javax.faces.resource/jquery/jquery.js.xhtml?ln=primefaces&v=5.3-SNAPSHOT"></script>
<script type="text/javascript"
src="/loyalty/javax.faces.resource/jquery/jquery-plugins.js.xhtml?ln=primefaces&v=5.3-SNAPSHOT"></script>
<script type="text/javascript"
src="/loyalty/javax.faces.resource/primefaces.js.xhtml?ln=primefaces&v=5.3-SNAPSHOT"></script>
<script type="text/javascript">if (window.PrimeFaces) {
PrimeFaces.settings.projectStage = 'Development';
}</script>
</head>
<body>
<form id="form" name="form" method="post" action="/loyalty/login/demo.xhtml"
enctype="application/x-www-form-urlencoded">
<input type="hidden" name="form" value="form"/>
<div class="ui-fluid">
<div class="ui-grid ui-grid-responsive">
<div class="ui-grid-row">
<div class="ui-grid-col-6">
<div id="form:j_idt6" class="ui-panel ui-widget ui-widget-content ui-corner-all"
data-widget="widget_form_j_idt6">
<div id="form:j_idt6_header"
class="ui-panel-titlebar ui-widget-header ui-helper-clearfix ui-corner-all"><span
class="ui-panel-title">1</span><a id="form:j_idt6_toggler" href="#"
class="ui-panel-titlebar-icon ui-corner-all ui-state-default"><span
class="ui-icon ui-icon-minusthick"></span></a></div>
<div id="form:j_idt6_content" class="ui-panel-content ui-widget-content">
<div id="form:j_idt7" class="ui-panelgrid ui-widget ui-panelgrid-blank">
<div id="form:j_idt7_content"
class="ui-panelgrid-content ui-widget-content ui-grid ui-grid-responsive">
<div class="ui-grid-row">
<div class="ui-panelgrid-cell ui-grid-col-2 right"><label id="form:j_idt8"
class="ui-outputlabel ui-widget">First
Name</label></div>
<div class="ui-panelgrid-cell ui-grid-col-4"><span id="form:firstName"></span>
<div id="form:j_idt10" aria-live="polite" class="ui-message"></div>
</div>
</div>
</div>
</div>
</div>
<input type="hidden" id="form:j_idt6_collapsed" name="form:j_idt6_collapsed" value="false"/>
</div>
<script id="form:j_idt6_s" type="text/javascript">PrimeFaces.cw("Panel", "widget_form_j_idt6", {
id: "form:j_idt6",
toggleable: true,
toggleSpeed: 500,
collapsed: false,
toggleOrientation: "vertical"
});</script>
</div>
<div class="ui-grid-col-6">
<div id="form:j_idt12" class="ui-panel ui-widget ui-widget-content ui-corner-all"
data-widget="widget_form_j_idt12">
<div id="form:j_idt12_header"
class="ui-panel-titlebar ui-widget-header ui-helper-clearfix ui-corner-all"><span
class="ui-panel-title">2</span><a id="form:j_idt12_toggler" href="#"
class="ui-panel-titlebar-icon ui-corner-all ui-state-default"><span
class="ui-icon ui-icon-minusthick"></span></a></div>
<div id="form:j_idt12_content" class="ui-panel-content ui-widget-content">
<div id="form:j_idt13" class="ui-panelgrid ui-widget ui-panelgrid-blank">
<div id="form:j_idt13_content"
class="ui-panelgrid-content ui-widget-content ui-grid ui-grid-responsive">
<div class="ui-grid-row">
<div class="ui-panelgrid-cell ui-grid-col-2 right"><label id="form:j_idt14"
class="ui-outputlabel ui-widget">Member
Code</label></div>
<div class="ui-panelgrid-cell ui-grid-col-4"><span id="form:memberCode"></span>
<div id="form:j_idt16" aria-live="polite" class="ui-message"></div>
</div>
</div>
</div>
</div>
<input type="hidden" id="form:j_idt12_collapsed" name="form:j_idt12_collapsed"
value="false"/></div>
<script id="form:j_idt12_s"
type="text/javascript">PrimeFaces.cw("Panel", "widget_form_j_idt12", {
id: "form:j_idt12",
toggleable: true,
toggleSpeed: 500,
collapsed: false,
toggleOrientation: "vertical"
});</script>
</div>
</div>
<div class="ui-grid-row">
<div class="ui-grid-col-6">
<div id="form:j_idt18" class="ui-panel ui-widget ui-widget-content ui-corner-all"
data-widget="widget_form_j_idt18">
<div id="form:j_idt18_header"
class="ui-panel-titlebar ui-widget-header ui-helper-clearfix ui-corner-all"><span
class="ui-panel-title">3</span><a id="form:j_idt18_toggler" href="#"
class="ui-panel-titlebar-icon ui-corner-all ui-state-default"><span
class="ui-icon ui-icon-minusthick"></span></a></div>
<div id="form:j_idt18_content" class="ui-panel-content ui-widget-content">
<div class="ui-fluid">
<div id="form:j_idt19:j_idt21" class="ui-panelgrid ui-widget ui-panelgrid-blank">
<div id="form:j_idt19:j_idt21_content"
class="ui-panelgrid-content ui-widget-content ui-grid ui-grid-responsive">
<div class="ui-grid-row">
<div class="ui-panelgrid-cell ui-grid-col-2 right"><label
id="form:j_idt19:j_idt22" class="ui-outputlabel ui-widget">Phone
number</label></div>
<div class="ui-panelgrid-cell ui-grid-col-4"><input
id="form:j_idt19:telNum" name="form:j_idt19:telNum" type="text"
class="ui-inputfield ui-inputtext ui-widget ui-state-default ui-corner-all"/>
<script id="form:j_idt19:telNum_s"
type="text/javascript">PrimeFaces.cw("InputText", "widget_form_j_idt19_telNum", {id: "form:j_idt19:telNum"});</script>
<div id="form:j_idt19:j_idt24" aria-live="polite"
class="ui-message"></div>
</div>
</div>
</div>
</div>
</div>
<input type="hidden" id="form:j_idt18_collapsed" name="form:j_idt18_collapsed"
value="false"/></div>
<script id="form:j_idt18_s"
type="text/javascript">PrimeFaces.cw("Panel", "widget_form_j_idt18", {
id: "form:j_idt18",
toggleable: true,
toggleSpeed: 500,
collapsed: false,
toggleOrientation: "vertical"
});</script>
</div>
<div class="ui-grid-col-6">
<div id="form:j_idt27" class="ui-panel ui-widget ui-widget-content ui-corner-all"
data-widget="widget_form_j_idt27">
<div id="form:j_idt27_header"
class="ui-panel-titlebar ui-widget-header ui-helper-clearfix ui-corner-all"><span
class="ui-panel-title">4</span><a id="form:j_idt27_toggler" href="#"
class="ui-panel-titlebar-icon ui-corner-all ui-state-default"><span
class="ui-icon ui-icon-minusthick"></span></a></div>
<div id="form:j_idt27_content" class="ui-panel-content ui-widget-content">
<div id="form:j_idt28" class="ui-panelgrid ui-widget ui-panelgrid-blank">
<div id="form:j_idt28_content"
class="ui-panelgrid-content ui-widget-content ui-grid ui-grid-responsive">
<div class="ui-grid-row">
<div class="ui-panelgrid-cell ui-grid-col-2 right"><label
id="form:j_idt29" class="ui-outputlabel ui-widget">XXX</label>
</div>
<div class="ui-panelgrid-cell ui-grid-col-4"><span id="form:xxx"></span>
<div id="form:j_idt31" aria-live="polite" class="ui-message"></div>
</div>
</div>
</div>
</div>
</div>
<input type="hidden" id="form:j_idt27_collapsed" name="form:j_idt27_collapsed"
value="false"/></div>
<script id="form:j_idt27_s"
type="text/javascript">PrimeFaces.cw("Panel", "widget_form_j_idt27", {
id: "form:j_idt27",
toggleable: true,
toggleSpeed: 500,
collapsed: false,
toggleOrientation: "vertical"
});</script>
</div>
</div>
</div>
</div>
<input type="hidden" name="javax.faces.ViewState" id="j_id1:javax.faces.ViewState:0"
value="-3076482170183502940:7614811616339079394" autocomplete="off"/>
</form>
</body>
</html>