问题标签 [dropwizard-templates]
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.
java - Dropwizard 从 POST 方法更新视图
我正在尝试在注册新用户的 POST 方法中验证表单。如果出现错误(例如已使用的用户名),我希望从我的 GET 方法中检索到的视图使用错误进行更新。我正在使用 Dropwizard 视图和 Freemarker。到目前为止我的代码:
注册.ftl:
还有我的资源类:
我遇到了这个页面,它提供了一些指导,但我未能复制它,因为没有完全提供源并且它不使用 Dropwizard 的视图功能。我还考虑将参数添加到我的 GET 方法并从 POST 方法重定向,但这对我来说似乎有点矫枉过正?
任何帮助将不胜感激。
java - 在 Dropwizard Intellij 中找不到 Freemarker 模板
我正在尝试设置一个 freemarker 模板来显示 SQL 查询的结果。我遇到了 Intellij 报告找不到模板的问题:
当我的应用程序类中的主要方法设置如下时发生这种情况:
在此设置下,导航到返回地址数据库的 URL 会在我的浏览器中返回 404 错误,并且上述日志处于调试模式。
对在 Dropwizard 中使用 Freemarker 的额外研究使我在应用程序的 main 方法中设置了一个 Configuration 实例,以使用 setDirectoryForTemplateLoading 查找模板,指向路径,并使用 getTemplate 返回模板文件本身:
但是,转到 URL 会返回相同的错误。在这种情况下,唯一明显的区别是错误信息在服务器启动时打印在控制台顶部:
最后,它显示它是从资源文件夹中加载模板;但是,尝试运行我定义的 getter 方法稍后会在控制台中返回相同的错误。谁能给我一些见解?我认为这不是我的代码的问题,而是 .ftl 文件没有向 Intellij 注册。
编辑:这是我的视图包,在初始化下。:
java - 如何在 Freemarker DropWizard 中使用按钮调用方法
我正在尝试使用 Freemarker 模板中的按钮调用删除方法。我认为这就像在我的资源类中定义该方法的路径一样简单,然后将表单的操作指向该路径;但是,当我按下按钮时没有任何反应。
这是按钮的代码:
理论上,这应该会激活向 SQL 服务器发送删除请求的方法。我用于此的原始方法是:
这使用 DAO 发送请求。我在 Postman 中对此进行了测试,并且可以正常工作。我以为我可以将按钮指向相同的路径来使用它,但这不起作用。因此,我尝试修改构造函数用于 ftl 模板的方法:
但这遇到了一个问题,即我无法将返回人员列表的 PersonView 应用于 deletePerson,这是一个 void 方法。有人对我如何做到这一点有任何见解吗?看起来应该很简单,但我无法弄清楚。
编辑:
除了关于提交按钮的 user7294900 答案之外,我还需要对删除方法进行更改。在研究这个问题时,我还发现 html 表单不能与 DELETE 或 PUT 方法一起使用;只有 POST 和 GET。考虑到这一点,我将资源方法更改为使用 @POST 注释:
我还对表单按钮进行了必要的提交更改:
java - Dropwizard 配置不适用于 Shaded jar
尝试运行带有 configuration.yaml 文件中属性的阴影 jar 时,我遇到了以下问题。(直接跑主类时不会发生)
运行命令:java -jar target/mlsdata-1.0.jar server configuration.yaml
错误:
根据我从各种来源了解到的情况,这可能是一个 Maven 包装问题。解决方案虽然没有帮助我。
这是我在 POM 中的构建设置。
`
`
下拉向导版本:
配置.yaml
java - Freemarker:访问模板中没有getter的公共字段
我正在 Dropwizard 应用程序中设置视图,并遇到了 Freemarker 的一个奇怪问题。
按照此处的文档,我设置了一个非常简单的示例,如下所示
和FooView.ftl
呈现时的预期输出ExampleFreemarkerView
是显示Hello World
.
实际发生的是 Freemarker 抛出一个异常,抱怨${foo.bar}
- 特别bar
是 - 是未定义的。
这似乎是因为bar
是一个公共领域,没有吸气剂。当我向 中添加public String getBar() { return bar; }
吸气剂时Foo
,它可以工作。
我对这种情况感到有些惊讶 - 即 Freemarker 似乎需要 getter 并且不能与开箱即用的公共字段一起工作。我故意在我的模型对象上使用公共字段而不是 getter/setter,因此添加 getter 只是为了使 Freemarker 工作不是我会考虑的解决方案。
我搜索了很多并通读了 Freemarker 文档,但找不到任何方法在 Freemarker 中“打开”这种行为。可能吗?
只是为了感兴趣-我也尝试了上面的示例,完全相同,但是使用 Mustache 模板和公共字段可以正常工作(即{{foo.bar}}
渲染Hello World
没有问题)。这解决了眼前的问题,所以这个问题主要是出于好奇,或者我出于其他原因决定使用 Freemarker 而不是 Mustache。
根据评论进行编辑-我知道 Freemarker 这样做(坚持使用 getters 开箱即用)遵循 Java Beans 规范,但 Java 生态系统中的大多数库都支持公共领域 - Hibernate 和 Jackson 是突出的例子 - 在我个人看来它作为一个同样有效的标准,并且发现不支持它的库令人惊讶。
dropwizard - Maven、JAVA SE 和 Docker 的最低版本
我想知道使用 Dropwizard v1.3.20(2020 年 3 月 6 日的最新版本)构建微服务所需的 Maven 和 Java SE 的最低版本?
如果我也知道 Docker 的最低版本,那就太好了。
谢谢
linux - Dropwizard 不控制 archivedFileCount
我有以下配置,
我可以在提供的位置看到的日志文件是
仅为 21 个文件创建日志文件。
我没有从 logrotate.d 配置文件中看到任何相关信息。
还有什么方法可以控制这些日志?除了配置文件,文件数只有 21 而不是 25 的原因是什么?