Кэширование на стороне клиента в JSF 1.2 / RichFaces 3.3.x - PullRequest
0 голосов
/ 01 декабря 2011

Я чувствую, что это идет вразрез с общей парадигмой JSF, но я решил спросить, возможно ли это.

У меня есть <rich:dataTable>, который отображается и для каждой итерации (строка) необходимо выполнить поиск в базе данных, чтобы определить, является ли компонент редактируемым.Проблема в том, что мне нужно знать, если бин можно редактировать в нескольких местах, пусть это будет n .

Тогда возникает проблема, что мне нужно быть n повторяющиеся вызовы в базу данных.

Это заставляет меня задать вопрос: возможно ли кэшировать результат вызова функции на стороне клиента на время итерации?

<rich:dataTable>
    <rich:column>
        <f:facet name="header">
        <h:outputText value="Name"/>
    </f:facet>
        <h:outputText value="#{bean.name}"/>
    </rich:column>
    <rich:column>
        <f:facet name="header">
        <h:outputText value="Editable"/>
    </f:facet>
        <!-- Cache the result of the 'isEditable' function call -->
        <h:outputText value="#{mylib:isEditable(bean) ? 'Yes' : 'No'}"/>
    </rich:column>
    <!-- More content which requires the editable value -->
</rich:dataTable>

Любая помощь высоко ценится.

1 Ответ

0 голосов
/ 07 декабря 2011

Если это значение доступно в объекте bean, тогда это может применяться:

    <h:outputText value="Yes" rendered="#{bean.isEditable=='YES'}" />
    <h:outputText value="No" rendered="#{bean.isEditable=='NO'}" />
...