Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring MVC-无法将类型为“java.lang.String”的属性值转换为所需的类型“java.lang.Integer”_Java_Spring_Spring Mvc_Data Binding - Fatal编程技术网

Spring MVC-无法将类型为“java.lang.String”的属性值转换为所需的类型“java.lang.Integer”

Spring MVC-无法将类型为“java.lang.String”的属性值转换为所需的类型“java.lang.Integer”,java,spring,spring-mvc,data-binding,Java,Spring,Spring Mvc,Data Binding,我是Spring MVC的新手。我开发了一个示例应用程序,可以执行选择、插入、更新和删除 下面是我的Bean类 下面是我的控制器类 下面是我的JSP页面 默认情况下,我声明为int的值在JSP中显示为0。当我把phone变量从int改为Integer时,0力就来了。为什么是这样? 问题是值9962287970超出了Integer类型的范围 要修复此更改,请更改专用整数电话;私人长途电话;或私人串电话 如果使用字符串,则可以将其他字符(如+)存储到变量phone中 提及 int的defauld值为

我是Spring MVC的新手。我开发了一个示例应用程序,可以执行选择、插入、更新和删除

下面是我的Bean类

下面是我的控制器类

下面是我的JSP页面

默认情况下,我声明为int的值在JSP中显示为0。当我把phone变量从int改为Integer时,0力就来了。为什么是这样?
问题是值9962287970超出了Integer类型的范围

要修复此更改,请更改专用整数电话;私人长途电话;或私人串电话

如果使用字符串,则可以将其他字符(如+)存储到变量phone中

提及


int的defauld值为0,但对于Integer,它不是零,因为它是一个对象,所以必须将该值初始化为0

您已超出整数范围,因此请使用Long而不是int,或者将其设置为字符串变量类型。应用更改后,不要忘记删除表

@Id
@Column
private int student_id;
private String name;
private String age;
private String city;
private String country;
private Long/String phone;
private int hsc;
private int sslc;
private int college;

问题1。请参见此嵌套异常:输入字符串的java.lang.NumberFormatException:9962287970。因为它超出了int的范围。请尝试将其更改为String或Long

问题2。在Java中,int是一种基本类型,不被视为对象。只有对象可以有空值。一旦类的对象初始化,所有原语都设置为默认值,在int的情况下为0


电话号码不是号码,而是一串号码

e、 g.00159 222 111 和 0159222111


是不同的电话号码,但是是相同的整数。

我在测试时遇到了相同的问题,实际上我没有从jsp输入文本传递任何数字传递空值-我删除了javascript验证,以便进行无法转换为整数的简单测试。我知道这是一个愚蠢的错误,但我认为这有助于犯同样错误的人。

是的,你是正确的。但是我怎么能过来呢?电话号码有10位数字,也可以考虑把电话号码改为字符串,因为有效的电话号码可以包含字符+和。而且它们不容易存储为整数或long。注意,您的错误是由于电话号码超出了int的范围。但根本的问题是电话号码不是上面提到的号码。这与问题无关。用户输入字符串,Bean类保存整数
@Controller
public class StudentController {

private static final Logger logger = Logger.getLogger(StudentController.class);

@Autowired
private StudentService studentService;

@RequestMapping(value = "/students", method = RequestMethod.GET)
public String listStudents(Model model){
    if(logger.isDebugEnabled()){
        logger.debug("listStudents method is executed!");
    }

    logger.error("This is an error message", new Exception("Testing"));
    model.addAttribute("student", new StudentDO());
    model.addAttribute("listStudents", this.studentService.listStudents());
    return "students";
}


@RequestMapping(value = "/students/add", method = RequestMethod.POST)
public String addStudent(@ModelAttribute("student") StudentDO studentDO){
    if(studentDO.getStudent_id() == 0){
        /**new person, add it*/
        this.studentService.addStudent(studentDO);
    }else{
        /**existing person, call update*/
        this.studentService.updateStudent(studentDO);
    }
    return "redirect:/students";
}
}
<c:url var="addAction" value="/students/add" ></c:url>

<form:form action="${addAction}" commandName="student">

<table>

<c:if test="${!empty student.name}">
    <tr>
        <td>
            <form:label path="student_id">
                <spring:message text="STUDENT_ID"/>
            </form:label>
        </td>
        <td>
            <form:input path="student_id" readonly="true" size="8"  disabled="true" />
            <form:hidden path="student_id" />
        </td>
    </tr>
</c:if>

<tr>
    <td>
        <form:label path="name">
            <spring:message text="Name"/>
        </form:label>
    </td>
    <td>
        <form:input path="name" />
    </td>
</tr>
<tr>
    <td>
        <form:label path="age">
            <spring:message text="Age"/>
        </form:label>
    </td>
    <td>
        <form:input path="age" />
    </td>
</tr>
<tr>
    <td>
        <form:label path="city">
            <spring:message text="City"/>
        </form:label>
    </td>
    <td>
        <form:input path="city" />
    </td>
</tr>
<tr>
    <td>
        <form:label path="country">
            <spring:message text="Country"/>
        </form:label>
    </td>
    <td>
        <form:input path="country" />
    </td>
</tr>
<tr>
    <td>
        <form:label path="phone">
            <spring:message text="Phone"/>
        </form:label>
    </td>
    <td>
        <form:input path="phone" />
    </td>
</tr>
<tr>
    <td>
        <form:label path="hsc">
            <spring:message text="HSC"/>
        </form:label>
    </td>
    <td>
        <form:input path="hsc" />
    </td>
</tr>
<tr>
    <td>
        <form:label path="sslc">
            <spring:message text="SSLC"/>
        </form:label>
    </td>
    <td>
        <form:input path="sslc" />
    </td>
</tr>
<tr>
    <td>
        <form:label path="college">
            <spring:message text="College"/>
        </form:label>
    </td>
    <td>
        <form:input path="college" />
    </td>
</tr>

<tr>
    <td colspan="2">
        <c:if test="${!empty student.name}">
            <input type="submit" value="<spring:message text="Edit Student"/>" />
        </c:if>
        <c:if test="${empty student.name}">
            <input type="submit" value="<spring:message text="Add Student"/>" />
        </c:if>
    </td>
</tr>
org.springframework.validation.BindException:     
org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'student' on field 'phone': rejected value [9962287970]; 
codes [typeMismatch.student.phone,typeMismatch.phone,typeMismatch.java.lang.Integer,typeMismatch]; 
arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [student.phone,phone]; arguments []; 
default message [phone]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.lang.Integer' for property 'phone'; 
nested exception is java.lang.NumberFormatException: For input string: "9962287970"]
Integer.MAX_VALUE < 9962287970 
@Id
@Column
private int student_id;
private String name;
private String age;
private String city;
private String country;
private Long/String phone;
private int hsc;
private int sslc;
private int college;