JSF 2.0: Пустой оператор не работает с параметром

В файле 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}" />

С уважением

5
задан Mr.J4mes 30 May 2012 в 08:42
поделиться