Подтвердить что ты не робот

Velocity, что самый эффективный способ проверить, является ли строка пустой и не нулевой

У меня часто бывают случаи, когда строковое значение отсутствует и/или пусто. Это лучший способ проверить это условие?

#if( $incentive.disclaimer && $!incentive.disclaimer != '' ) 
   $incentive.disclaimer 
#end
4b9b3361

Ответ 1

Если вы просто хотите, чтобы Velocity отображала значение, если оно есть или отображает ничего, если отсутствует, тихая ссылка сама по себе сделает трюк:

$!incentive.disclaimer

Если вы хотите явно протестировать пустое, StringUtils из Apache Commons Lang может Помогите. Сначала добавьте его в свой контекст (ссылка здесь):

context.put("StringUtils", StringUtils.class);

Хотя, если вы используете более старую версию Velocity, ей может не понравиться ссылка на класс, поэтому вы можете добавить экземпляр вместо этого:

context.put("StringUtils", new StringUtils());

Затем вы можете вызвать его isEmpty из своего шаблона Velocity:

#if($StringUtils.isEmpty($incentive.disclaimer))
    ## logic here...
#end

Если вы хотите, чтобы пробел считался пустым, также isBlank.

Ответ 3

Вам нужна тихая ссылка: $! stimive.disclaimer

Bla bla $!incentive.disclaimer. 

Если $поощрение .disclaimer null или "", Velocity отобразит:

Bla bla .

Обратитесь к официальному разделу руководства: https://velocity.apache.org/engine/devel/user-guide.html#quiet-reference-notation

Иногда вам нужно #if

Наиболее распространенный случай, когда вам нужно #if: ваша переменная является частью большей части текста, и вы не хотите показывать ее, если переменная пуста. Тогда вам это нужно:

#if($incentive.disclaimer && !$incentive.disclaimer.empty) 
    Please read our incentive disclaimer:
    $incentive.disclaimer
#end