Я пытаюсь перенести одно приложение на новый сервер приложений, и JSF начинает работать по-разному из-за другой реализации JSF.Сейчас у меня проблема с MyFaces 2.0.Это работало на старом сервере:
есть составной компонент <abc:form>
, который включает тег <composite:insertChildren>
.
при использовании этого компонента в xhtml, например:
<abc:form>
<c:if test="true">
this text will not be visible. But it should be.
</c:if>
</abc:form>
эта <c:if...
часть - дети.Однако ничего не отображается.Как будто c: если разрешено в false, или тестирование не выполняется.
Я знаю, что этот случай можно разрешить, используя <h:outputText>
вместо <c:if>
, но у меня есть много кода, где <c:if>
входит в состав более сложных детей.Этот пример - просто упрощение, описывающее мою боль.
Итак, законно ли иметь теги jstl, которые могут быть включены как дочерние элементы для компонентов? Я предполагаю, что здесь виноваты жизненные циклы JSP / JSF.
edit: как видно из комментария ниже, это комбинация JSF и портлета (WebSphere Portal 9 в WAS 8.5.5).Я все еще не уверен, виноват ли портал (и портальный мост) или чистый JSF здесь.Поэтому я создал демонстрационный проект, который проявляет мою проблему.Если есть какая-нибудь добрая душа, которая может использовать этот код, чтобы попытаться развернуть его на своем собственном портале, это будет очень цениться.Он был создан в Rational Application Developer путем создания нового проекта портлета с одним портлетом JSF внутри.Затем я добавил составной компонент в WebContent / resources и изменил представление портлета по умолчанию (xhtml).
Экспортированные проекты из RAD