springmvc 关于form表单中modelAttribute绑定实体时 整型初始化 问题

代码如下:
User类:

public class User implements Serializable{
    private static final long serialVersionUID = 1L;
    @NotBlank(message="登录名不能为空")
    private String loginname;
    @NotBlank(message="密码不能为空")
    @Length(min=6,max=8,message="密码长度必须在6到8位之间")
    private String password;
    @NotBlank(message="用户名不能为空")
    private String username;
     @Email(message="邮箱必须合法")
    private String email;
    @Range(min=16,max=68,message="年龄必须在16到68之间")
    private int age;                      //主要是此处
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @Past(message="生日必须是一个过去的日期")
    private Date birthday;
    @Pattern(regexp="[1][3,8][3,6,9][0-9]{8}",message="无效的电话号码")
    private String phone;
    //get/set方法

jsp页面:

<h3>注册页面</h3>
<form:form modelAttribute="user" method="post" action="login" >
    <table>
        <tr>
            <td>登录名:</td>
            <td><form:input path="loginname"/></td>
            <td><form:errors path="loginname" cssStyle= "color:red"/></td>
        </tr>
        <tr>
            <td>密码:</td>
            <td><form:input path="password"/></td>
            <td><form:errors path="password" cssStyle= "color:red"/></td>
        </tr>
        <tr>
            <td>用户名:</td>
            <td><form:input path="username"/></td>
            <td><form:errors path="username" cssStyle= "color:red"/></td>
        </tr>
        <tr>
            <td>年龄:</td>
            <td><form:input path="age"/></td>
            <td><form:errors path="age" cssStyle= "color:red"/></td>
        </tr>
        <tr>
            <td>邮箱:</td>
            <td><form:input path="email"/></td>
            <td><form:errors path="email" cssStyle= "color:red"/></td>
        </tr>
        <tr>
            <td>生日:</td>
            <td><form:input path="birthday"/></td>
            <td><form:errors path="birthday" cssStyle= "color:red"/></td>
        </tr>
        <tr>
            <td>电话:</td>
            <td><form:input path="phone"/></td>
            <td><form:errors path="phone" cssStyle= "color:red"/></td>
        </tr>
        <tr>
            <td><input type="submit" value="提交"/></td>
        </tr>
    </table>
</form:form>

页面展示效果:
这里写图片描述


出现原因和解决办法:
这是Java基本语法决定的,好好理解一下Integer和int的区别,另外还可以在页面初始化后进行处理,所以有两个解决方法:
一、将int改为Integer,这样初始值为null,在页面上显示就是空值
二、在页面上用JavaScript处理

Html代码:

<body onload="if(document.getElementById('age').value=='0')document.getElementById('age').value='';">  
.....  
</body>

Javascript代码:

$(function(){  
if($('#age').val()=='0'){  
  $('#age').val('');  
}  
});

猜你喜欢

转载自blog.csdn.net/zuifenglin00/article/details/82466483
今日推荐