JSF rendu: la condition de EL déclaration incorrecte

J'ai un problème avec mon JSF-rendu. Une condition donnée dans l'Expression de la Langue ne sera pas exécuté dans le droit chemin.
E. g:

Exemple 1

<f:param name="cat" value="#{product.category.uri}" rendered="#{product.category.parent.uri == null}" />
<f:param name="cat" value="#{product.category.parent.uri}" rendered="#{product.category.parent.uri != null}" />

Exemple 2

<c:if test="#{product.category.parent.uri == null}">
    <f:param name="cat" value="#{product.category.uri}" />
</c:if>

<c:if test="#{product.category.parent.uri != null}">
    <f:param name="cat" value="#{product.category.parent.uri}" />
</c:if>

Problème

Dans les deux exemples, mes deux paramètres seront ajoutés à mon entourage h:outputLink.
Je ne suis pas sûr de ce que d'autres code à ajouter, donc si vous les gars ont besoin de rien d'autre pour m'aider, je serai heureux de fournir.

Merci d'avance.

Exemple 3 (sur demande)

<?xml version='1.0' encoding='UTF-8' ?>

<ui:composition template="./WEB-INF/templates/base.xhtml"
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:c="http://java.sun.com/jsp/jstl/core">
    <ui:define name="content">
        <c:choose>
            <c:when test="#{webshop.productlist.size() > 0}">
                <div id="spacer">
                    <ui:repeat value="#{webshop.productlist}" var="product">
                        <div id="block">
                            <p>
                                <h:outputLink value="product.xhtml">
                                    #{product.name}
                                    <c:choose>
                                        <c:when test="#{product.category.parent.uri == null}">
                                            <f:param name="cat" value="#{product.category.uri}" rendered="" />
                                        </c:when>
                                        <c:otherwise>
                                            <f:param name="cat" value="#{product.category.parent.uri}" />
                                        </c:otherwise>
                                    </c:choose>
                                    <f:param name="product" value="#{product.uri}" />
                                </h:outputLink>
                            </p>
                        </div>
                    </ui:repeat>
                </div>
            </c:when>

            <c:otherwise>
                (...)
            </c:otherwise>
        </c:choose>
    </ui:define>
</ui:composition>

J'ai nettoyé cet exemple un peu, mais l'essentiel est là.
J'ai remplacé les premiers exemples par un lorsque/le contraire de la construction, si mon produit.de la catégorie.parent.uri est null ou pas, il me donnera le premier résultat dans ce cas.

Pas d'erreur sur la console?
Nope, et la donnée .uri est nul en fait.
En fait, vous devez déboguer pourquoi le produit n'est pas dans le champ d'application.
Que voulez-vous dire exactement?
pourquoi est-ce que votre EL ont le signe"#"? ne devrait-elle pas être "$" ?

OriginalL'auteur Menno | 2012-09-07