null

Комментарии в JSF

Небольшая заметка по поводу комментариев в JSF. Я думаю многие сталкивались с ситуацией, когда в комментарии попадают jsf-теги. Проблема заключается в том, что некоторые выражения, находящиеся в закомментированных тегах, все равно вычисляются. Данное поведение может привести к непредсказуемым сторонним эффектам, а также быть причиной возникновения эксепшенов.

<!--
<h:outputText value="#{projectBean.name}" />
-->

Во время рефакторинга мы изменили название свойства с name на projectName, не модифицировав комментарий. Получается, что в комментарии вызывается свойство бина по уже несуществующему имени. В результате у нас ошибка:

ERROR [ExceptionHandlerAjaxImpl:62] 
The class 'com.test.beans.ProjectBean' does not have the property 'name'.
javax.el.PropertyNotFoundException: 
The class 'com.test.beans.ProjectBean' does not have the property 'name'.

Чтобы этого избежать, необходимо добавить в web.xml следующие строки:

<context-param>
    <param-name>facelets.SKIP_COMMENTS</param-name>
    <param-value>true</param-value>
</context-param>

Теперь jsf-теги в комментариях не будет учитываться и все должно обрабатываться нормально.