cancel
Showing results for 
Search instead for 
Did you mean: 

jsp no entra en <c:if....>

fstnboy
Champ on-the-rise
Champ on-the-rise
Buenas a todos!

Tengo el siguiento trozo de código en una .jsp, la cosa es que al hacer la llamada a "esLibre" no creo que me entre, puesto que en el log no veo nada escrito (el log funciona bien!)…



<c:if test="#{ResumenEjecutivo.esLibre==false}">
   <h:column>
   …
   </h:column>
</c:if>


El código del método esLibre, por si sirve de algo es el siguiente:


public boolean esLibre(){
   boolean retorno;
   retorno = navigationBean.getCurrentNode().getAspects().toString().contains("ResumibleLibre");
   s_logger.info("Es libre: " + retorno);
   return retorno;
}

Gracias!
11 REPLIES 11

ajv
Champ in-the-making
Champ in-the-making
Hola fstnboy,

No he utilizado el tag c:if…no sé ni siquiera a qué namespace forma parte  Smiley Surprisedops:
Yo usaría el booleanEvaluator de Alfresco, por ejemplo:
<a:booleanEvaluator value="#{bean.isCheckedOut}">
     <h:outputText value="Component inside an evaluator"/>
</a:booleanEvaluator>

Saludos!!

fstnboy
Champ on-the-rise
Champ on-the-rise
Qué haría yo sin ti!

Bueno, ahora sé que me entra al método, pero…. jeje no me entro dentro de la etiqueta. Es decir, quiero que entre cuando el valor sea falso, para lo que escribo lo siguiente pero no me entra!



<a:booleanEvaluator value="#{ResumenEjecutivo.esLibre == false}">
   …
</a:booleanEvaluator>

ajv
Champ in-the-making
Champ in-the-making
Hola de nuevo fstnboy,

¿Y si pruebas así?:
<a:booleanEvaluator value="#{!ResumenEjecutivo.esLibre}">
   …
</a:booleanEvaluator>
Mirando un poco la definición del tag, tiene pinta que espera un valor boolean en lugar de una expresión a interpretar…Si niegas el valor (!) quizás te vaya perfecto.
Ya me dirás si es así realmente.  Smiley Very Happy

Hasta luego!!

fstnboy
Champ on-the-rise
Champ on-the-rise
tampoco ha funcionado…  :roll:

¿Alguna otra manera de hacerlo?

ajv
Champ in-the-making
Champ in-the-making
pues sí que es extraño!

En el peor de los casos, mira de crearte un método adicional en el bean (NoEsLibre) que te devuelva el negado de esLibre: !(esLibre) y pon ese método en el evaluador…a ver qué pasa.
Suerte!

fstnboy
Champ on-the-rise
Champ on-the-rise
Que va… tampoco me ha servido, he probado quitando la condición, por si habia algo mal en el código y sin condición me lo muestra bien! umm con lo del <c:if….> ni me llama a la función. Por lo menos el booleanEvaluator sí que me llama.

fstnboy
Champ on-the-rise
Champ on-the-rise
Paso a poner todo el código, por si veis algo raro…

jsp:

<a:booleanEvaluator value="#{ResumenEjecutivo.esLibre==false}">
   <h:column>
      <f:facet name="header">
         <h:outputText value="% sobre el total de litigios incluidos en este cuadro"/>
      </f:facet>
      <h:outputText value="#{r.porcentaje}%"/>
      <f:facet name="footer">
         <h:outputText value="#{ResumenEjecutivo.porcenTotal}%"/>
      </f:facet>
   </h:column>
</a:booleanEvaluator>

Lo del "==false" lo he visto en un ejemplo así que yo supongo que funcionará.


Bean:

private boolean esLibre = false;

public boolean getEsLibre(){
   esLibre = navigationBean.getCurrentNode().getAspects().toString().contains("ResumibleLibre");
   s_logger.info("Es Libre: " + esLibre);
   return esLibre;
}

public void setEsLibre(boolean libre){
   esLibre = libre;
}

El log muestra que es "false" unas 4-5 veces seguidas…

ajv
Champ in-the-making
Champ in-the-making
Hola fstnboy,

Me sabe mal porque es que ahora no tengo tiempo para hacer pruebas (el viernes tengo un examen de opos chunguito)…
Se me ocurre otra idea: Usar el atributo rendered del tag column, a ver si así te funciona:
<h:column rendered="#{ResumenEjecutivo.esLibre==false}">
      <f:facet name="header">
         <h:outputText value="% sobre el total de litigios incluidos en este cuadro"/>
      </f:facet>
      <h:outputText value="#{r.porcentaje}%"/>
      <f:facet name="footer">
         <h:outputText value="#{ResumenEjecutivo.porcenTotal}%"/>
      </f:facet>
</h:column>
Venga, hasta luego!

fstnboy
Champ on-the-rise
Champ on-the-rise
Dios, como te quiero ajv!!!

Funciona! Siempre me sacas de apuros.

Que tengas suerte en el examen.

Un abrazo y saludos