f: дословный тег перестает работать, когда внутри dataTable - PullRequest
2 голосов
/ 24 сентября 2011

Я разместил это на форуме пользователей PrimeFaces, но я думаю, что они слишком заняты, чтобы посмотреть на него, поэтому я решил попробовать здесь.

У меня есть строка на стороне сервера, в которой есть разметка, поэтомукогда я хочу, чтобы он был обработан, я делаю это:

            <p:panel>                    
                <f:verbatim>
                    #{daBean.markedUpString}
                </f:verbatim>
            </p:panel>

Это работает нормально, но не в том случае, если один и тот же тег используется внутри p: dataTable - с или без p: панель корпус.Визуализируется элемент div class = "ui-dt-c" , в котором ничего нет.Чтобы проверить, если я уберу тег f: дословно , размеченный текст будет экранирован и обработан.

Я не знаю, следует ли это считать ошибкой или нет, ноКто-нибудь знает обходной путь для этого?Это с PrimeFaces 3.0.M3.

1 Ответ

6 голосов
/ 24 сентября 2011

Тег <f:verbatim> предназначен для хранения простого текста / HTML, а не компонентов JSF или выражений EL.Этот тег является пережитком эпохи JSF 1.0 / 1.1, когда было невозможно встроить простой текст / HTML между компонентами JSF.Тег не поддерживается в JSF2.Вам это больше не нужно.

Таким образом, ваше конкретное функциональное требование отображает некоторую строку HTML из неэкранированного управляемого компонента.Для этого вы должны использовать <h:outputText> с escape="false".

<h:outputText value="#{daBean.markedUpString}" escape="false" />

См. Также:

...