проверьте, можно ли преобразовать строку в число в FreeMarker



Я пытаюсь проверить, можно ли преобразовать строку в число в FreeMarker. Например, "123" и " 3.14 "могут быть преобразованы, но" foo " не может. я знаю, что могу проверить это с помощью числового метода в строке (например, "123"?number) и посмотреть, не приводит ли это к ошибке, но я ищу способ проверить это без возникновения ошибки.



Я пробовал ?matches("^d+$"), и это прекрасно работает для целых чисел, но я ищу что-то, что работает на всех числах.



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

424   1  

1 ответ:

Проще всего не делать этого в FreeMarker : -) это звучит так, как будто что-то контроллер (или метод на модели) должен делать, а не шаблон представления. Тем не менее, у вас есть несколько вариантов:

  1. Использовать ?номер, встроенный в блок <#attempt> / <#recover>.
  2. Напишите метод в одном из объектов модели, чтобы проверить, является ли ваша строка числом, и вызовите его из шаблона.
  3. Напишите пользовательскую директиву, чтобы сделать это за вас.

Comments

    Ничего не найдено.