在 Java 中将 2 个字符串与 Handlebars 进行比较
Comparing 2 strings with Handlebars in Java
我在 Java 中将 Handlebars 与 Dropwizard 结合使用。我想比较 2 个字符串,如果它们相同,我想做点什么。我知道 Java 脚本中有一些助手,但我不知道如何使它们适应 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);
}
}
首先为您的自定义助手创建一个 class:
public class HandlebarsHelpers {
public CharSequence equals(final Object obj1, final Options options) throws IOException {
Object obj2 = options.param(0);
return Objects.equals(obj1, obj2) ? options.fn() : options.inverse();
}
}
然后注册那个class:
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}}
有一个更简单的解决方案:
后端:
Handlebars handlebars = new Handlebars();
handlebars.registerHelper("eq", ConditionalHelpers.eq);
前端:
{{#eq "a" "a"}}HURRA!{{/eq}}
我在 Java 中将 Handlebars 与 Dropwizard 结合使用。我想比较 2 个字符串,如果它们相同,我想做点什么。我知道 Java 脚本中有一些助手,但我不知道如何使它们适应 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);
}
}
首先为您的自定义助手创建一个 class:
public class HandlebarsHelpers {
public CharSequence equals(final Object obj1, final Options options) throws IOException {
Object obj2 = options.param(0);
return Objects.equals(obj1, obj2) ? options.fn() : options.inverse();
}
}
然后注册那个class:
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}}
有一个更简单的解决方案:
后端:
Handlebars handlebars = new Handlebars();
handlebars.registerHelper("eq", ConditionalHelpers.eq);
前端:
{{#eq "a" "a"}}HURRA!{{/eq}}