问题标签 [handlebars.java]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
852 浏览

handlebars.js - Handlebars: Partials vs Helpers 模板

我们开始在我们的一些项目中将 Handlebars 用于视图层。我们开始在两种做模板的方式之间找到一个十字路口。我一直在使用 partials 来处理模板和具有小的 HTML 模板,例如:

另一位开发人员认为我们不应该为此使用 partials,而应该为此创建帮助程序。

我可以看到帮助器更容易处理输入参数(因为我目前正在使用某种形式的“包含”帮助器来包含这些带有一些额外变量的部分)。但是,我认为您将 HTML 写入代码中的字符串并不适合我——我不认为您在那里正确地分离了您的关注点。我们还在 Java 中使用 Handlebars(通过 [Handlebars.Java][2]),因此您的 HTML 也非常多地包含在已编译的代码中 - 而不是简单的编辑视图文件。

是否有一种普遍接受的方式来处理 Handlebars 中的模板?Partials 或 Helpers 或者还有什么我不知道的?

0 投票
2 回答
661 浏览

javascript - 意外的令牌非法:如何从 JSON 中删除“e; 和换行符”

加载页面时,我从服务器收到一个Handelbars.java ,并使用. 到现在一切都很好。

但是,我想获取该对象并将其存储在 对象中,这是我失败的地方。

当我尝试将其存储在对象上时,我执行以下操作:

我得到以下(&quote;和换行符解释):

当我应该得到以下内容时(不解释换行符):

所以它在Uncaught SyntaxError: Unexpected token ILLEGAL上给我一个错误。

当使用它在 HTML 模板上打印 json 时<pre>{{output}}</pre>看起来很好。

您是否知道如何将服务器返回的存储在页面加载到对象上,因为我没有太多控制它,因为它没有附带

谢谢你。

0 投票
2 回答
2809 浏览

java - 将 2 个字符串与 Java 中的 Handlebars 进行比较

我在 Java 中使用 Handlebars 和 Dropwizard。我想比较 2 个字符串,如果它们相同,我想做点什么。我知道 Javascript 中有一些 Helpers,但我不知道如何使它们适应 java。

我有这段代码,但问题是,如何添加第二个值来检查它们是否相等。

0 投票
2 回答
1261 浏览

java - Java:将多个值传递给车把模板

我正在使用车把模板在发送之前动态准备电子邮件内容。

只传递一个值很简单。例如:

What's up {{this}}模板与template.apply(firstName).

尝试将模板更改为What's up {{this}}, {{this}}并尝试用template.apply(lastName);和填写template.apply(firstName);

但它不起作用。

0 投票
1 回答
578 浏览

json - Handlebars-proto 和 logstash-logback-encoder slf4j 冲突

我的项目使用handlebars-proto 将模板绑定到json。另外我正在尝试使用logstash-logback-encoder 以Json 的形式登录logstash。以下是我的编译依赖项(以及其他依赖项)

如果我删除车把依赖记录工作正常。如果存在车把,我会收到以下警告:

SLF4J:类路径包含多个 SLF4J 绑定。SLF4J:在 [jar:file:/C:/Users/manish/.gradle/caches/modules-2/files-2.1/com.github.jknack/handlebars-proto/4.0.5/5979737344d99e0d8b482e828f247ae86fd0113/handlebars-proto 中找到绑定-4.0.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J:在 [jar:file:/C:/Users/manish/.gradle/caches/modules-2/files-2.1/ch 中找到绑定.qos.logback/logback-classic/1.1.6/665e3de72f19ec66ac67d82612d7b8e6b3de3cd0/logback-classic-1.1.6.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J:见http://www.slf4j.org/codes .html#multiple_bindings进行解释。

其次是错误:

无法实例化 [ch.qos.logback.classic.LoggerContext] 报告异常: java.lang.NoSuchMethodError: ch.qos.logback.core.spi.ContextAwareBase.(Lch/qos/logback/core/spi/ContextAware;)V 在 net.logstash.logback.composite.CompositeJsonFormatter.(CompositeJsonFormatter.java:106) 在 net.logstash.logback.composite.loggingevent.LoggingEventCompositeJsonFormatter.(LoggingEventCompositeJsonFormatter.java:28) 在 net.logstash.logback.LogstashFormatter.(LogstashFormatter. java:122) 在 net.logstash.logback.LogstashFormatter.(LogstashFormatter.java:118) 在 net.logstash.logback.LogstashFormatter.(LogstashFormatter.java:114) 在 net.logstash.logback.encoder.LogstashEncoder.createFormatter(LogstashEncoder .java:31) 在 net.logstash.logback.encoder.CompositeJsonEncoder.(CompositeJsonEncoder.java:48) 在 net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder.(LoggingEventCompositeJsonEncoder.java:23) 在 net.logstash.logback.encoder。位于 sun.reflect 的 LogstashEncoder.(LogstashEncoder.java:27)。NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor. java:526) 在 java.lang.Class.newInstance(Class.java:379) 在 ch.qos.logback.core.joran.action.NestedComplexPropertyIA.begin(NestedComplexPropertyIA.java:122) 在 ch.qos.logback.core .joran.spi.Interpreter.callBeginAction(Interpreter.java:276) 在 ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:148) 在 ch.qos.logback.core.joran.spi .Interpreter.startElement(Interpreter.java:130) 在 ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50)50)50)newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java: 526) 在 java.lang.Class.newInstance(Class.java:379) 在 ch.qos.logback.core.joran.action.NestedComplexPropertyIA.begin(NestedComplexPropertyIA.java:122) 在 ch.qos.logback.core.joran .spi.Interpreter.callBeginAction(Interpreter.java:276) 在 ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:148) 在 ch.qos.logback.core.joran.spi.Interpreter .startElement(Interpreter.java:130) 在 ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50)newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java: 526) 在 java.lang.Class.newInstance(Class.java:379) 在 ch.qos.logback.core.joran.action.NestedComplexPropertyIA.begin(NestedComplexPropertyIA.java:122) 在 ch.qos.logback.core.joran .spi.Interpreter.callBeginAction(Interpreter.java:276) 在 ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:148) 在 ch.qos.logback.core.joran.spi.Interpreter .startElement(Interpreter.java:130) 在 ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50)newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:526) 在 java.lang.Class.newInstance(Class .java:379) 在 ch.qos.logback.core.joran.action.NestedComplexPropertyIA.begin(NestedComplexPropertyIA.java:122) 在 ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java:276) ) 在 ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:148) 在 ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:130) 在 ch。 qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50)newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:526) 在 java.lang.Class.newInstance(Class .java:379) 在 ch.qos.logback.core.joran.action.NestedComplexPropertyIA.begin(NestedComplexPropertyIA.java:122) 在 ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java:276) ) 在 ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:148) 在 ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:130) 在 ch。 qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50)newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at java.lang.Class.newInstance(Class.java:379) at ch.qos.logback.core.joran .action.NestedComplexPropertyIA.begin(NestedComplexPropertyIA.java:122) 在 ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java:276) 在 ch.qos.logback.core.joran.spi.Interpreter .startElement(Interpreter.java:148) 在 ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:130) 在 ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer .java:50)newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at java.lang.Class.newInstance(Class.java:379) at ch.qos.logback.core.joran .action.NestedComplexPropertyIA.begin(NestedComplexPropertyIA.java:122) 在 ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java:276) 在 ch.qos.logback.core.joran.spi.Interpreter .startElement(Interpreter.java:148) 在 ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:130) 在 ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer .java:50)122) 在 ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java:276) 在 ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:148) 在 ch .qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:130) 在 ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50)122) 在 ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java:276) 在 ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:148) 在 ch .qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:130) 在 ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50)

我尝试将 slf4j 排除为车把的传递依赖项,但它没有帮助。

提前感谢您的帮助。如果需要更多详细信息,请告诉我。

0 投票
1 回答
1529 浏览

handlebars.js - Handlebar.java : 比较 #if 助手中的相等性

如何比较 Handlebars.java 中的相等性和其他逻辑条件。例如:

欢迎有或没有解决方案registerHelper()

0 投票
1 回答
815 浏览

java - 将 HandlebarsTemplateEngine 与 Sparkjava 一起使用的 FileNotFoundException

我有火花的问题。我正在尝试加载视图“base.hbs”,但每当我尝试加载它时,火花都会引发 FileNotFoundException

我尝试将构造函数更改为 new HandlebarsTemplateEngine("tried/different/paths/here"); 但没有运气。我什至尝试将资源文件夹放在 C:/ Drive 并从外部加载它,但仍然没有运气......

我没有使用常规的嵌入式 Jetty 服务器,但我使用的是 tomcat 服务器...我可以向您保证其他 get 方法有效(我返回字符串的地方)

非常感谢您的帮助。

代码:

文件夹结构:

文件结构

例外:

0 投票
0 回答
215 浏览

java - 为 Spring MVC 解析 Handlebars.java 视图中的虚拟路径

我正在尝试将 Handlebars.java 连接为 Spring MVC 的简单视图引擎。我已经为 Bean 添加了一个 Bean,HandlebarsViewResolver并且可以获得要渲染的视图。

我现在要做的是将我的视图中的虚拟路径解析为绝对路径。例如,我有一个样式表的链接:

我需要将 URL 解析为绝对路径,该路径考虑到应用程序可能在其下运行的虚拟主机路径。如果通过http://test.site.com/dev/URL 请求应用程序将解析为/dev/style/theme.css. 对于给定的请求,我可以轻松获取基本路径信息,但我唯一能想到的就是basePath为每个上下文添加一个属性到 Handlebars 上下文,并通过前缀解析虚拟路径。

这意味着要么让我的所有模型都从一组基本属性继承,要么使用 aHandlerInterceptor来处理每个模型以添加到属性中。

我也研究过创建一个辅助函数,但我遇到了同样的问题,即必须为每个请求添加上下文,因为 Spring 似乎无法ViewResolver为每个请求创建一个依赖于HttpServletRequest我可以在辅助函数定义中使用。

我不禁觉得这是一个非常常见的场景,在大多数视图引擎中都可以满足。我错过了一些非常明显的东西吗?

0 投票
1 回答
48 浏览

handlebars.js - Handlebars 不呈现 json

JSON 它来自:

迭代

但是,仅{{this}}显示{"email":"testcompany@company.com","company_number":"09999999","company_name":"Name_123","full_name":"test","phone_number":"xyz"}{"email":"testtwo@company.com","company_number":"09999999","company_name":"Name_123","full_name":"test","phone_number":"xyz"}所有其他都不会显示。

我错过了什么吗?

0 投票
2 回答
673 浏览

java - 我可以更改 Handlebars.java 中的默认转义吗?

我有一个带有默认 Handlebars 扩展的模板{{thing}}

出于各种令人讨厌的原因,我想用它来呈现 JSON,因此不要使用{{.

我还想在 HTML 上下文中使用模板。

我可以设置一个具有不同默认转义行为的 Handlebars.java 实例吗?