Использовать Enum в Primefaces JSF [дубликат]

Жадный будет потреблять как можно больше. Из http://www.regular-expressions.info/repeat.html мы видим пример попытки сопоставить HTML-теги с <.+>. Предположим, что у вас есть следующее:

Hello World

Вы можете подумать, что <.+> (. означает любой символ новой строки и + означает один или несколько ) будет соответствовать только и , когда на самом деле это будет очень жадно и перейти от первого < к последнему >. Это означает, что он будет соответствовать Hello World вместо того, что вы хотели.

Сделать это ленивым (<.+?>) предотвратит это. Добавив ? после +, мы просим его повторить как можно меньше , поэтому первый >, с которым он сталкивается, - это то, где мы хотим остановить сопоставление.

Я бы посоветовал вам скачать RegExr , отличный инструмент, который поможет вам исследовать регулярные выражения - я использую его все время.

7
задан BalusC 16 October 2012 в 11:16
поделиться

1 ответ

Как это сделать, чтобы константы были доступны как из бэкэндов, так и из файлов XHTML?

В резервных компонентах это, очевидно, легко. Поскольку они просто классы Java, это не отличается от «нормального» Java-способа. Вы можете использовать поля enum s или public static final. В взглядах это совсем другая история. До следующей версии 3.0 EL не поддерживает константы.

Я бы предложил использовать перечисления, поскольку EL имеет скрытую поддержку для них в строковых сравнениях. Он не выполняет никаких проверок безопасности типа / времени выполнения, но вы можете использовать имя перечисления в виде строки. Например,

<h:someComponent ... rendered="#{order.status == 'SHIPPING'}" />

Если вы предпочитаете больше кода самодокументирования и проверки времени выполнения (нет, проверка на компиляцию невозможна), вы можете рассмотреть возможность использования OmniFaces <o:importConstants> .

<o:importConstants type="com.example.OrderStatus" />
<h:someComponent ... rendered="#{order.status == OrderStatus.SHIPPING}" />

Это ИМО лишь немного более неуклюжий. Тем не менее, во время разработки проверка работоспособности. Опечатка легко контролируется.

В предстоящем EL 3.0 ( JSR-341 , части Java EE 7), можно ссылаться на константы одинаково. См. Также Как ссылаться на константы в EL? Для этого требуется только программный импорт констант, поскольку для этого нет стандартного тега JSP / Facelets.

12
ответ дан Community 29 August 2018 в 00:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: