问:如果action中有一个对象User,只写了他的setter方法,那么接收参数的时候会怎么样?

<input name="user.username">
<input name="user.password">

// 参数拦截器
request.getParameter("user.username");
request.getParameter("user.password");

UserAction{
    private User user;
    //getter/setter
}

参数拦截器
request.getParameter("user.username")
因为参数中包含了 "." ,会到action类中调用getUser(),那么第一次获取到的User对象是null,这时的struts2会自己创建一个User对象,然后调用setUsername()方法, 然后在调用setUser()

request.getParameter("user.password")
那么,如果这个请求是在user.username后面过来的,UserAction中没有User的getter方法,获取不到User对象,那么struts2也会自己创建一个User对象,然后调用setPassword(),再调用setUser(),这样的话,会将前面的User中username属性的值给覆盖了,只剩下了password的值。


蛛蛛侠
1 声望0 粉丝