#jsf-2 #primefaces #el
#jsf-2 #простые #el
Вопрос:
У меня есть два <p:dailog>
s, и, основываясь на условии свойства компонента, я хочу показать один из них. Я использовал следующий код
onclick="#{empty groupBean.selectionGroup?dialog_empty.show():groupDialog.show()}"
Но он не работает, поскольку в нем говорится, что в выражении EL есть ошибка. Я не уверен, где ошибка. Правильно ли я это делаю?
Комментарии:
1. В этом конкретном случае ошибка оказывается достаточно очевидной, чтобы ее можно было обнаружить, просто взглянув на код, но в будущих вопросах об ошибках вам действительно следует скопировать все сообщение об ошибке, поскольку они обычно уже содержат ответ.
Ответ №1:
Вы обрабатываете код JavaScript как часть выражения EL. Это приведет только к синтаксической ошибке, потому что EL не может найти #{dialog_empty}
nor #{groupDialog}
в области видимости. Вы должны обрабатывать код JavaScript как строки, заключая их в кавычки, потому что в конечном итоге они должны быть записаны в HTML-ответ как есть:
onclick="#{empty groupBean.selectionGroup ? 'dialog_empty.show()' : 'groupDialog.show()'}"
Комментарии:
1. спасибо БалусК. На самом деле в консоли не было ошибки. Приложение также работало нормально, кроме этой кнопки. Как я могу включить просмотр ошибок.
2. Вы сами сказали: «это говорит об ошибке в выражении EL»? Итак, есть «ошибка». Или это все, что вы получили?
3. это все, что я получил. Приложение работало нормально. Никаких исключений.
4. даже сейчас я вижу предупреждение, поэтому я его проигнорировал. Следующее предупреждение
Description Resource Path Location Type This empty expression always evaluates to false. Only string, maps, arrays and collection have meaningful values for the empty operator group_detail.xhtml /mint_v1/WebContent/pages line 36 Facelet Validator
5. Ну, это, должно быть, был запрос ajax. Возможно, PrimeFaces подавляет это. Извините, я не использую PrimeFaces широко, я не могу подробно рассказать о его настройке. По крайней мере, ваша конкретная проблема теперь решена, верно? 🙂