O meu problema é que o valor statusAtual é sempre null ou “” como é string, ou seja, é como se ele não pegasse o valor selecionado.
<p:selectOneMenu value="#{redacaoMB.statusAtual}" var="statusAtual" >
<f:selectItem itemLabel="Corrigida" itemValue="Corrigida" />
<f:selectItem itemLabel="Recorrigida" itemValue="Recorrigida"/>
<f:selectItem itemLabel="Não Corrigida" itemValue=" Nao Corrigida"/>
</p:selectOneMenu>
Porque preciso usar o valor armazenado em statusAtual na pesquisa do código abaixo:
<p:fieldset legend="LISTA DE REDAÇÕES" style="color: cornflowerblue">
<p:dataTable id="tabelaRed" value="#{redacaoMB.redList}" var="con" rendered="#{redacaoMB.pesquisarRedacoesStatus(statusAtual) > 0}" paginator="true" rows="10"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}">
<p:column >
<f:facet name="header">
<h:outputText value="Tema" style="color: white"/>
</f:facet>
<h:form >
<h:commandLink value="${con.tema}">
<f:setPropertyActionListener value="#{con}" target="#{redacaoMB.redacao}"/>
</h:commandLink>
</h:form>
</p:column>
.....
</h:form>
</p:column>
</p:dataTable>
Meu metodo pesquisarRedacoesStatus(statusAtual) da classe RedacaoMB é descrito abaixo:
private String statusAtual;
public int pesquisarRedacoesStatus(String status) {
redacoes = new ArrayList();
for (Redacao r : dao.findRedacaoEntities()) {
if ((r.getStatus().equals(status))) {
redacoes.add®;
}
}
return redacoes.size();
}
public String getStatusAtual() {
return statusAtual;
}
public void setStatusAtual(String sts) {
this.statusAtual = sts;
}
Por fim quando realizo a pesquisa vem todas as redações corrigidas, não corrigidas, e recorrigidas, e não como deveria mostrar apenas o status que foi selecionado.
O que falta? o que está dando errado no meu código? me ajudem por favor!
Desde já agradeço!