这是我的用户类,我在我的数据库中保存了ISO兼容的日期时间.
public class User {
@Id
private String id;
private String email;
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
private LocalDateTime loginDate;
}
Run Code Online (Sandbox Code Playgroud)
这是我的泽西控制器:
@POST
@Consumes("application/json")
@Produces("application/json")
public Response create( User user) {
Map<Object, Object> apiResponse = new HashMap<Object, Object>();
Map<Object, Object> response = new HashMap<Object, Object>();
user = (User) userService.create(user);
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能在运动衫中使用像这样的日期时间格式?是否可以自动发送String
数据时间并创建Java 8日期时间对象?
{
"email" : "imz.mrz@gmail.com"
"loginDate" : "2015-04-17T06:06:51.465Z"
}
Run Code Online (Sandbox Code Playgroud)
#
更新:
我使用的是Spring boot jersey,还有其他jsr包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jersey</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
所以我删除了除spring-boot-jersey包之外的所有包.对LocalDateTime使用此注释
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
Run Code Online (Sandbox Code Playgroud)
这样我可以使用ISODate并将ISODate()保存到mongodb并生成完整格式化的mongodb LocalDateTime到前端.
问题解决了.
我越来越:
javax.validation.ValidationException:HV000032:无法初始化org.hibernate.validator.internal.constraintvalidators.bv.PatternValidator
我的pom.xml
:
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.2.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
即使使用调试模式日志记录,也不会显示其他错误。
@Pattern(regexp = "[0-9.- ]*"); here is the code
Run Code Online (Sandbox Code Playgroud) 我们正在创建一个弹簧靴衫应用程序.现在我们要创建可执行的war文件.问题是当我运行它时,应用程序运行正常
mvn spring-boot:run
Run Code Online (Sandbox Code Playgroud)
但是当我尝试将其打包为war并使用java -jar ABD.war运行它时会出现以下错误
Caused by: java.io.FileNotFoundException: /Users/ABC/ABD-0.0.1-SNAPSHOT.war!/WEB-INF/classes (No such file or directory)
Caused by: org.glassfish.jersey.server.internal.scanning.ResourceFinderException:
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的pom.xml的一部分,
<packaging>war</packaging>
.
.
.
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<org.slf4j.version>1.7.7</org.slf4j.version>
<maven-compiler-plugin.version>3.1</maven-compiler-plugin.version>
<java.version>1.8</java.version>
</properties>
.
.
.
.
.
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
虽然当我解压war文件时,我可以看到WEB-INF/classes文件夹.
我已经创建了一个自定义验证器来验证dateTimefield.我的问题是我不能将它添加到datetimefield变量
类型中的方法add(
IValidator<? super Date>
)FormComponent<Date>
不适用于参数(DateTimeFieldValidator)
这是我得到的错误.
是否有任何标准方法来验证DateTimeField?
package validators;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import org.apache.wicket.extensions.yui.calendar.DateTimeField;
import org.apache.wicket.validation.IValidatable;
import org.apache.wicket.validation.IValidator;
import org.apache.wicket.validation.ValidationError;
public class DateTimeFieldValidator implements IValidator<DateTimeField> {
/**
*
*/
private static final long serialVersionUID = 2342344609244L;
public DateTimeFieldValidator() {
}
private void error(IValidatable<DateTimeField> validatable, String errorKey) {
ValidationError error = new ValidationError();
error.addMessageKey(getClass().getSimpleName() + "." + errorKey);
validatable.error(error);
}
public void validate(IValidatable<DateTimeField> validatable) {
DateTimeField dateTime = (DateTimeField) validatable.getValue();
if ( dateTime== null){
error(validatable, "invalid.datetime");
} …
Run Code Online (Sandbox Code Playgroud)