Я пытаюсь динамически визуализировать некоторые композиции / шаблоны на основе наличия строки запроса или отсутствия строки запроса. Например:
локальный: 9080 / myWonderfulApp / test.xhtml Foo = бар
Это работает, A.xhtml втягивается.
локальный: 9080 / myWonderfulApp / test.xhtml
Это не работает, B.xhtml не втягивается.
У меня проблемы с отсутствием части строки запроса. Я могу отобразить A.xhtml, когда передам? Foo = bar, но я не могу воспроизвести B.xhtml, когда у меня нет строки запроса. Я пробовал некоторые варианты, я изначально полагал, что # {param ['foo']! = 'Bar' будет работать, но я думаю, что это не работает, потому что у меня вообще нет параметра foo запроса. Я пытался проверить, если param == null, но это тоже не сработало.
Можно ли установить мой отображаемый атрибут на основе НЕТ строки запроса?
Я не могу просто установить другую строку запроса для B.xhtml, так как я работаю над устаревшим приложением, которое получает 2 разных обложки, поэтому переоборудование всех старых приложений, которые ссылаются, не вариант. Новые приложения будут использовать строку запроса, старые должны получить ссылку на старый скин без строки запроса.
<!--This works-->
<h:panelGrid rendered="#{param['foo'] == 'bar' ? true : false}">
<ui:composition template="A.xhtml">...</ui:composition>
</h:panelGrid>
<!--This doesn't work-->
<h:panelGrid rendered="#{param == null ? true : false}">
<ui:composition template="B.xhtml">...</ui:composition>
</h:panelGrid>
Похоже, это тоже не работает:
<h:panelGrid rendered="#{empty facesContext.externalContext.requestParameterMap.foo ? true : false}">