2015-11-24 2 views
3

Я использую Handlebars с Dropwizard в Java. Я бы хотел сравнить 2 строки, и если они одинаково, я бы хотел что-то сделать. Я знаю, что есть некоторые помощники в Javascript, но я не понимаю, как их адаптировать к java.Сравнение 2 строк с Handlebars в Java

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

public enum StringHelper implements Helper<Object> { 
    eq { 
     @Override 
     public Boolean safeApply(final Object value, final Options options) { 
      return ((String)value).equals(/*SECOND VALUE*/); 
     } 
     }; 

     @Override 
     public Boolean apply(Object context, Options options) throws IOException { 
     return safeApply(context, options); 
     } 

     protected abstract Boolean safeApply(final Object value, 
             final Options options); 
    } 
} 

ответ

3

Сначала нужно создать класс для пользовательских помощникам:

public class HandlebarsHelpers { 
    public CharSequence equals(final Object obj1, final Options options) throws IOException { 
     Object obj2 = options.param(0); 
     return Objects.equal(obj1, obj2) ? options.fn() : options.inverse(); 
    } 
} 

Затем зарегистрировать этот класс:

Handlebars handlebars = new Handlebars(); 
handlebars.registerHelpers(new HandlebarsHelpers()); 

Используйте помощник:

{{#equals 'A' type}} 
    <p>The type is A</p> 
{{else}} 
    <p>The type is NOT A</p> 
{{/equals}}