日期:2014-05-17  浏览次数:20592 次

struts2自行建立对象User问题
struts2中jsp页面提交的form表单里面的参数为user.name,user.password,
struts2会new User()怎么做到new出来User的,
并自动把user.name,user.password封装到对象User中,并setUser()传到action中,
请问各位struts2是怎么做到的。。。怎么把user.name,user.password加到User中的。。。
谢谢、、、、、

------解决方案--------------------


struts2根据你传过来的值 按你的那个点截取user 然后在action里面看下 是不是有private User user;
要是有 那就给private User user; user 发射一下 创建一个新的user对象,然后遍历拿到user属性的get set方法 再把那个name password 里面的值拿出来 放到user对象里面.
------解决方案--------------------
很简单的对象反射呗
user.name
首先在action中查找是否存在名叫user的字段 Field Class.getDeclaredField(name)
获取到Action中user对象的类声明(Object user)
然后如果是 xxx.xxx.xxx格式 归递遍历每个节点的属性
从前面拿到的user对象中再获取name对应的字段
如果存在name字段,并且name的set函数有效(setName(value)),在user对象上调用这个set函数,将user.name的值作为参数