Struts2中通过反射为属性赋值,有一种情况是如何实现的?

flash0008 2009-06-25 02:29:43
Action
==============
private User user;
public setUser(User user)
{
this.user=user;
}
public User getUser()
{
return user;
}
...

前端页面
==============
<input type="text" name="user.name"/>
<input type="text" name="user.age"/>
...

问题:
如果直接把User的name和age直接定义在Action里,还好办,可是如果像上面这种情况,赋值的过程是如何的呢?难道先判断提交上来的user.name的格式,然后取前部分的user来反射User类,再取后部份的name来反射User类的属性?如果这样的话,遇到嵌套多几层的属性,那不就晕菜了?请高手提供个清晰的实现思路,谢谢!!
...全文
295 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
如果没有研究过 JavaBeans 规范,不知道下面这些类/接口的话

java.beans.Introspector
java.beans.BeanInfo
java.beans.PropertyDescriptor

那就不要去想这些事情了。
xcj0722 2009-06-28
  • 打赏
  • 举报
回复
顶!
atgmcbj 2009-06-28
  • 打赏
  • 举报
回复
群82253447 java技术交流社区刚刚组建
三人行必有吾师,但愿在这里都能体会到做学者和师者的乐趣。欢迎有问题和懂技术javaE族进场点评或PK
brz97 2009-06-28
  • 打赏
  • 举报
回复
例子
Object obj = XXX;

// 得到obj对应的类
Class objClass = obj.getClass();

// 得到指定的字段
Field theField = objClass.getDeclaredField("user");
//Method theMethod = objClass.getDeclaredMethod();

// 设置允许访问的权限
theField.setAccessable(true);
// 赋值
theField.set(obj, new User());

zhaotao_king 2009-06-25
  • 打赏
  • 举报
回复
能把源码发下吗?
xiaoge22275 2009-06-25
  • 打赏
  • 举报
回复
强烈关注!!
flash0008 2009-06-25
  • 打赏
  • 举报
回复
看了半天,层次很复杂,就是找不到想要的内容。。。看大部头源码就是头痛,唉。
laorer 2009-06-25
  • 打赏
  • 举报
回复
这个估计要看下 struts2 的源码..

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧