Dae galera, tudo certo? Bem, estou desenvolvendo uma aplicação ( projeto referente a uma biblioteca) com filtros, cadastros, etc.
Nesta, tenho Relatórios a serem gerados, sendo os mesmos gerados a partir de filtros.
Então, queria saber como eu poderia “bloquear” o relatório se o usuário não selecionar nenhum dos campos para filtrar o relatório. Tentei por required, mas não de certo.
Abaixo, está a tela para gerar o relatório de Boletins.
Desde já, agradeço se alguém puder ajudar.
<?xml version='1.0' encoding='UTF-8' ?>
<!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:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:treap="http://java.sun.com/jsf/composite/treap"
xmlns:p="http://primefaces.org/ui">
<body>
<ui:composition template="./default_layout_with_menu.xhtml">
<ui:define name="titulo-pagina">
Boletim
</ui:define>
<ui:define name="content">
<treap:ajaxStatus/>
<p:tabView id="tab" activeIndex="#{notaJsfBean.indiceAbaSelecionada}" widgetVar="tab1">
<p:tab title="Filtros" id="tabList" >
<p:panel header="Filtros de Consulta" id="parametros">
<treap:msgdica msg="Informe um parâmetro para a consulta. Deixe os campos em branco para exibir todos os registros."/>
<p:growl id="grow1" life="4000"/>
<p:focus for="escola"/>
<table border="0" cellpadding="2" cellspacing="0" style="margin-left: 40px">
<tr>
<td align="right">Escola</td>
<td>
<h:selectOneMenu id="escola" value="#{notaJsfBean.escola}" converter="sec" required="true" requiredMessage="O campo Escola deve ser informado.">
<f:selectItem/>
<f:selectItems value="#{notaJsfBean.escolaList}" var="e" itemLabel="#{e.nomeCompleto}" itemValue="#{e}"/>
<f:ajax render="turma" event="change" listener="#{notaJsfBean.atualizarEscola(event)}" />
</h:selectOneMenu>
</td>
</tr>
<tr>
<td align="right">Turma</td>
<td>
<h:selectOneMenu id="turma" value="#{notaJsfBean.turma}" converter="sec">
<f:selectItem />
<f:selectItems value="#{notaJsfBean.turmaList}" var="t" itemLabel="#{t.descricao}" itemValue="#{t}"/>
<f:ajax render="aluno" event="change" listener="#{notaJsfBean.atualizarAlunoPorTurma(event)}" />
</h:selectOneMenu>
</td>
</tr>
<tr>
<td align="right">Aluno</td>
<td>
<h:selectOneMenu id="aluno" value="#{notaJsfBean.aluno}" converter="sec">
<f:selectItem />
<f:selectItems value="#{notaJsfBean.alunoList}" var="a" itemLabel="#{a.nome}" itemValue="#{a}"/>
<f:ajax listener="#{notaJsfBean.aluno}"/>
</h:selectOneMenu>
</td>
</tr>
<tr>
<td> </td>
<td>
<treap:btnRelatorio metodo="#{notaJsfBean.geraRelatorioBoletimPDF()}" />
</td>
</tr>
</table>
<p:ajaxStatus style="position: fixed; top: 40%; left: 35%; background-color: #ffffff">
<f:facet name="start">
<h:graphicImage value="/resources/img/ajaxloadingbar.gif" /><br/>
<p:spacer width="3"/> Processando...
</f:facet>
<f:facet name="complete">
<h:outputText value="" />
</f:facet>
</p:ajaxStatus>
</p:panel>
</p:tab>
</p:tabView>
</ui:define>
</ui:composition>
</body>
</html>