【发布时间】:2020-01-12 03:09:02
【问题描述】:
我正在为客户创建页面,所以一切正常,直到我想强制用户在“免费通行证”字段中输入一个数字时出错
我尝试在 Customer 类中创建一个名为 freePasses 的整数类型字段,然后为其生成 getter 和 setter,我还修改了我的 .properties 文件
客户.java
@Min(value = 0 , message="the value must be equal or greater than 0")
@Max(value = 10, message = "the value must be equal or less than 10")
@NotNull(message = "is required")
private Integer freePasses;
public Integer getFreePasses() {
return freePasses;
}
public void setFreePasses(Integer freePasses) {
this.freePasses = freePasses;
}
applocation.properties
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
typeMismatch.customer.freePasses = invalid Number
Pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<version>8.5.20</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.17.Final</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
无法将 java.lang.String 类型的属性值转换为属性 freePasses 所需的 java.lang.Integer 类型;嵌套异常是 java.lang.NumberFormatException: For input string: "44xxxx"
【问题讨论】:
-
input字段的类型可以是number。不一定是text。 -
我使用的是 spring mvc,所以 jsp 文件是 我看不到如何在其中定义类型?
-
我不知道spring,但我猜你添加属性
type="number" -
好吧,spring mvc中没有类型=""
-
您是否尝试将 @Pattern 添加到 freePasses 并且内部模式仅输入数字的正则表达式?
标签: java spring spring-boot validation jsp