代码如下:
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('');
}
});