В файле aPage.xhtml
у меня есть следующие строки:
<ui:include rendered="#{not empty param.target}" src="#{param.target}.html" />
<ui:include rendered="#{empty param.target}" src="About.html" />
С выше строк, я ожидал, что когда я перейду к http://localhost:8080/beta/aPage.xhtml
, страница About.html
будет включена, так как param.target
имеет значение null
. Однако GlassFish выдал мне следующее исключение:
java.io.FileNotFoundException: http://localhost:8080/beta/.html
Каким-то образом param.target
не считается null
.
Кроме того, я пытался использовать операторы ==
и !=
следующим образом:
<ui:include rendered="#{param.target != null}" src="#{param.target}.html" />
<ui:include rendered="#{param.target == null}" src="About.html" />
Интересно, что в этот раз на консоли GlassFish я не увидел любое исключение. Однако в браузере по-прежнему отображается страница ошибки с исключением java.io.FileNotFoundException
.
Я был бы очень признателен, если бы вы сказали мне, почему это произошло и что мне делать, чтобы этого избежать.
ОБНОВЛЕНИЕ:
Благодаря подсказке Йоопа Эггена я, наконец, решил проблему со следующими строками:
<ui:param name="noTarget" value="About.html" />
<ui:param name="hasTarget" value="#{param.target}.html" />
<ui:include src="#{empty param.target? noTarget : hasTarget}" />
С уважением