问题标签 [spring-mvc-initbinders]
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 - Thymeleaf 似乎更喜欢 toString 而不是 initbinder customEditor
我想以特定格式(yyyy/MM/dd HH:mm)将 LocalDateTime 对象传递给 thymeleaf,然后将其接收回我的控制器类。我想使用 customEditor / initbinder 进行转换。
虽然 spring 在从表单接收数据时使用我的 initbinder,但 thymeleaf 似乎更喜欢 .toString() 方法而不是我的 initbinder 方法,而我的 getAsText() 方法永远不会被调用。
我的观点:
我发现 initbinder 的“方式”在代码可读性方面非常好。所以我想继续使用initbinder。是否可以告诉 thymeleaf 使用我的 initbinder 或任何其他好的解决方法?
java - 如何分别绑定日期和时间?
我想在控制器中分别绑定日期和时间。我在表单上有 1 个时间选择器和 1 个日期选择器,我使用 InitBinder 活页夹作为时间选择器,即,
但这对时间选择器和日期选择器都不起作用。任何更好的建议请......
spring-mvc - Spring initBinder StringTrimmerEditor - 排除一些字段
在我当前的应用程序中,通过使用 init binder-StringTrimmerEditor 我们将view/templates
. 但是现在我想movielist
在编辑表单时删除一个字段()作为该特定字段无效,即,删除movie-list
并单击保存按钮控制器中的所有值将空值设置为空字符串。我希望它是空字符串而不是空值。
如何排除电影列表被取消。
spring-mvc - 用@InitBinder 注解的方法可以标记为静态吗?
查看文档和@InitBinder
在线的几个示例,我从未看到这些方法标记为static
. 我的 IDE 声称它们可以标记为static
,这样做时我没有看到任何错误,从概念上讲,我认为您可以这样标记它。
这样做有什么缺点吗?我了解该方法不得返回值。
spring - 当传递到休息端点时,在 spring 中设置 LocalDateTime (jsr310) 的默认格式
java.time.LocalDateTime
当用户在与 QueryDSL 结合使用时将 URL 中的日期作为请求参数传递时,我试图找出默认格式
我查看了QuerydslPredicateArgumentResolver
, 并以DateTimeFormatterRegistrar
并找到了默认读取方式结尾:
因此,默认值应该是 SHORT,但是它似乎没有按预期工作。
此外,如何覆盖应用程序范围内的格式(不使用特定于字段的@DateTimeFormat
注释)
spring-mvc - 以 thymeleaf 形式查看日历对象作为日期类型
我有一个用户对象,并且用户有一个字段 DOB(出生日期)我已将该字段作为日历存储在用户 BO 中。
像这样的东西:
公共类用户BO {
}
现在我需要将此字段显示为 thymeleaf 中的日期字段而不是文本字段。我需要一个日期字段,因为我喜欢日期选择器 :)
这是我到目前为止所拥有的
但这给了我输出
这不是我所期待的。我期望从服务中填充一个实际日期,但它向我展示了上面的内容。
我已阅读有关日历对象的序列化和反序列化以及编写某种转换器的信息,但我没有得到完整的上下文,为什么需要这样做。加上当我看到例子时
输入 type="text" 并正确填充日期。所以有人可以指导我这种转换的基础是什么,以及应该如何做的例子会很好。
谢谢
spring-mvc - 在 thymeleaf 中查看日历对象作为日期
这是我之前帖子的延续
我已经接受了上一篇文章中给出的建议并进行了研究,我不想在那里更新我的问题描述,否则它会与那里的人提供的答案造成混淆。
我有一个用户对象,并且用户有一个字段 DOB(出生日期)我已将该字段作为日历存储在用户 BO 中。
像这样的东西:
现在我需要将此字段显示为 thymeleaf 中的日期字段而不是文本字段。我需要一个日期字段,因为我喜欢日期选择器 :)
这是我到目前为止所拥有的
根据上一篇文章中提供的建议,我进行了上述更改,但现在出现以下错误
控制器代码
java - Spring mvc表单处理属性值设置错误
这是模型
转换为所需对象
}
但!我得到了例外 org.springframework.beans.MethodInvocationException: Property 'skills' throw exception; 嵌套异常是类 org.springframework.beans.AbstractNestablePropertyAccessor 的方法 setPropertyValue 中的 java.lang.NullPointerException。不幸的是,这是我能得到的所有信息。我累死。
java - @Valid 注解在应用于 MultipartFile 对象时被忽略
这是我的控制器。它接受multipart/form-data
具有两个字段的请求,form
并且file
. form
字段是 a
,字段MyObject
是file
a MultipartFile
。这两个变量都用 注释@Valid
,因此,我希望 Spring 调用Validator
每个字段的类。但是,这只发生在MyObject
,而不是。MultipartFile
我MyObjectValidator
的被触发了,但我FileValidator
的没有被触发。这两个类都实现了 SpringValidator
接口。MyObjectValidator.supports(Class<?> aClass)
被调用,而FileValidator.supports(Class<?> aClass)
从未被调用。除此之外, myController
运行良好,并且努力将对象保存到 my repo
.
这里可能是什么问题?我读过类似的问题,常见的错误是没有在@InitBinder
注释中使用适当的参数,或者将@InitBinder
方法设置为private
而不是public
,但这都不适用于我的情况。
这个丑陋的解决方法做了它应该做的,但它不像 Spring。我在方法中FileValidator
手动调用我的Controller.createMyObject
方法,而不是让 Spring 通过@Valid
注释自动调用它。
编辑:我Validator
根据要求包括了我的课程。
编辑:我像 NiVeR 建议的那样对我的代码进行了一些更改,删除了 varargs 参数并相应地更改了我的代码FileValidator.supports(Class<?> aClass)
,但行为仍然相同。
在 Controller.java 中:
在 FileValidator.java 中:
java - 为什么每个请求都调用@InitBinder 方法?
在调试 Spring Boot 应用程序时,我注意到@InitBinder
每个传入请求都会调用带有注释的方法。
在@InitBinder
方法中,我们将 a 设置PropertyEditor
为活页夹。我不明白为什么要一次又一次地调用这些方法并设置相同的东西?Spring 是否为每个请求
创建一个新对象?WebDataBinder