Как получить первый элемент массива строк в скорости jira? - PullRequest
1 голос
/ 07 февраля 2020

Я новичок в скорости и мне нужна помощь. У меня есть com.atlassian.jira.user.RemoteUser и remoteUser.getDisplayName () возвращает строку, которую я хочу разделить вокруг совпадений данного регулярного выражения. И затем получить первый элемент массива String, но, к сожалению, у меня есть:

#set ($userName = $remoteUser.getDisplayName().split(" "))

$userName, Hello!

И есть [L java .lang. String;@74a70acb насколько я понимаю, это строковый массив.

Но если я попытаюсь, попробуйте получить
#set ($userName = $remoteUser.getDisplayName().split(" ")[0])

$userName, Hello!

У меня

org. apache .velocity.exception.ParseErrorException: Обнаружено "[" в getEncodedBodyFromContent [строка 1, столбец 58] Ожидалось одно из: ... ... "-" ... " + "..." * "..." / "..."% "... ... ... ... ... ... ... ... ... ...

Если я попытаюсь #set ($userName = $remoteUser.getDisplayName().split(" ")).get(0)), я получу исключение нулевого указателя

Ответы [ 2 ]

0 голосов
/ 12 февраля 2020

Не знаю почему, но команда $string.split(" ") не работает. После этого я подумал, что у меня есть массив String, но после $userName = $remoteUser.getDisplayName().split(" ").get($index) у меня возникло исключение нулевого указателя.
Решением, которое помогло, было использование команд indexOf() и substring(), например:

#set ($userName = $remoteUser.getDisplayName())
#set ($index = $userName.indexOf(' '))
#set ($surname = $userName.substring(0, $index))
#set ($index = $index + 1)
#set ($name = $userName.substring($index))
0 голосов
/ 07 февраля 2020

Velocity 1.6.4 более десяти лет, и он не поддерживает массивы.

Velocity 1.7 был выпущен в ноябре 2010 года и поддерживает массивы.

Кто-то где-то должен обновить кое-что (FYI текущая версия Velocity 2.2 ...).

...