我的control代码如下:
[code="java"]
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService ;
@ModelAttribute("user")
public User getUser(){
System.out.println("------getUser()-----");
return new User();
}
@RequestMapping()
public String userInit(){
return "test/user";
}
@RequestMapping("/add")
public String saveUser(@ModelAttribute("user") User user,Model model) throws Exception{
userService.saveUser(user) ;
return "redirect:user/list" ;
}
@RequestMapping("/list")
public String getAllUser(Model model){
System.out.println("size="+userService.getAllUser()) ;
model.addAttribute("userList", userService.getAllUser()) ;
return "test/user" ;
}
}
[/code]
当我访问user/list时候,会先调用public User getUser()方法初始化user对象,用来在页面的form中绑定提交表单,
user实体对象的代码如下
[code="java"]
public class User implements Serializable {
private String name ;
private String pass;
private int age ;
//getter and setter
}
[/code]
页面代码如下:
[code="html"]
Court Name | ||
pass | ||
age | ||
/form:form
[/code]
这里 modelAttribute="user" 绑定了后台public User getUser()初始化的User对象,但是User对象里面有一个int类型的age属性,初始化以后age=0 在页面中所以显示了0,
有没有办法不显示0 ,显示为空啊?
使用对象类型,把int改为用Integer。
这不是springmvc的框架决定的事,而是Java基本语法决定的,建议你好好理解一下Integer和int的区别,另外还可以在页面初始化后进行处理,所以有两个解决方法:
一、像@heichong讲的那样,将int改为Integer,这样初始值为null,在页面上显示就是空值
二、在页面上用JavaScript处理
一般JS代码
[code="html"]
jQuery代码:
[code="javascript"]
$(function(){
if($('#age').val()=='0'){
$('#age').val('');
}
});
[/code]